spring定时任务调度quartz
来源:互联网 发布:java程序员工作职责 编辑:程序博客网 时间:2024/04/30 13:00
1.maven依赖
<!-- 定时任务 --><dependency> <groupId>quartz</groupId> <artifactId>quartz</artifactId> <version>1.5.2</version></dependency>
2.写一个需要调度任务的方法
@Componentpublic class PostDataService { private final Logger logger = LoggerFactory.getLogger(getClass()); //@PostConstruct 如果打开就是项目启动后执行此方法 public void run() { try { logger.info("开始执行--------------"); //**查询所有产品数据 和产品客户关系数据 List<Products> products = getAll(Products.class); List<ClientProductView> clientProducts = getAll1(ClientProductView.class); start(products,clientProducts); } catch (Exception e) { //错误日志记录 logger.error("、执行----报错----------\r\n" + e.getMessage()); e.printStackTrace(); }finally { logger.info("结束执行--------------"); //成功日志记录 } }
3.配置文件(能被spring扫描到)
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/beans/beans*.xml</param-value></context-param>
配置文件写法beans-quartz-task.xml
(1).bean,表明哪个类
<bean id="postDataService" class="com.study.demo.service.quartz.PostDataService"></bean>(2).要定时执行的方法
<!--要定时执行的方法--><bean id="postDataInvoker" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <!--指定要定时执行的方法所在类,将定时任务定义成bean--> <ref bean="postDataService" /> </property> <property name="targetMethod"> <!--指定定时执行的方法--> <value>run</value> </property> <property name="concurrent"> <!--指定目标封装为有状态的任务,有状态的任务不能并发执行,无状态的任务可并发执行--> <value>true</value> </property> </bean>(3).定义触发时间
<!-- 定义触发时间 --><bean id="postDataTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="postDataInvoker" /> </property> <property name="startDelay"> <value>60000</value> </property> <!-- cron表达式,此处是每天两点执行 --> <property name="cronExpression"> <!--<value> 0 0/10 * * * ?</value>--><!-- 每隔10分钟, --> <value> 0 0 2 * * ?</value><!-- 每天两点执行, --> </property> </bean>(4).启动工作
<!--启动工作--><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="postDataTrigger" /> </list> </property></bean>
以上就是任务定时调度
附带
"0 0 * * * ? "每天整点触发
"0 0 12 * *?” 每天中午12点触发“0 15 10?* *”每天上午10:15触发“0 15 10 * *?” 每天上午10:15触发“0 15 10 * *?*”每天上午10:15触发“0 15 10 * *?2005”2005年的每天上午10:15触发“0 * 14 * *?” 在每天下午2点到下午2:59期间的每1分钟触发“0 0/5 14 * *?” 在每天下午2点到下午2:55期间的每5分钟触发“0 0/5 14,18 * *?” 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发“0 0-5 14 * *?” 在每天下午2点到下午2:05期间的每1分钟触发“0 10,44 14?3 WED”每年三月的星期三的下午2:10和2:44触发“0 15 10?* MON-FRI”周一至周五的上午10:15触发“0 15 10 15 *?” 每月15日上午10:15触发“0 15 10 L *?” 每月最后一日的下午10:15触发“0 15 10?* 6L”每月的最后一个星期五上午10:15触发“0 15 10?* 6L 2002-2005”2002年至2005年的每月的最后一个星期五上午10:15触发“0 15 10?* 6#3”每月的第三个星期五上午10:15触发
备注:定时调度,当服务器启动后,定时调度开始倒计时,所以通过修改服务器时间对此是没有影响的
0 0
- Spring+Quartz定时任务调度
- spring+quartz定时任务调度
- spring定时任务调度quartz
- Spring 配置Quartz 定时任务调度服务
- Spring配置quartz定时调度任务
- Spring整合Quartz实现定时任务调度
- spring整合quartz实现定时任务调度
- Spring整合Quartz实现定时任务调度
- Spring—Quartz定时任务调度
- Spring整合Quartz实现定时任务调度
- 使用Spring + quartz实现定时任务调度
- Spring整合Quartz实现定时任务调度
- 如何使用spring 定时调度 【 Spring+Quartz实现定时任务 】
- Quartz 定时任务调度
- quartz定时任务调度
- Quartz定时任务调度
- spring实现自动定时任务调度【Spring Task】【Quartz】
- Spring Quartz定时调度
- python exec
- c# .accdb格式access数据库压缩
- leetcode题解-287. Find the Duplicate Number
- 自定义progressbar(类似dialog)
- MATLAB中调用c++程序(函数)
- spring定时任务调度quartz
- [BZOJ 1345][Baltic2007]序列问题Sequence:单调栈
- 第七届ACM山东省赛-D Swiss-system tournament
- Java使用spring发送邮件
- leetcode数组之Rotate Image
- AVFoundation使用
- 使用u盘PE系统重装Windows操作系统
- iOS
- Java设计模式之装饰者模式(Decorator pattern)