前言
说起定时任务,开发的小伙伴们肯定不陌生了。有些事总是需要计算机去完成的,而不是傻傻的靠我们自己去。可是好多人对定时器总感觉很陌生,今天小编就带小伙伴们揭开它的神秘面纱,讲解一下spring利用squertz实现定时任务。
一、需要的Jar
?
|
1
2
3
4
5
6
7
8
9
10
|
quartz-1.8.5.jar
commons-logging.jar
spring-core-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring.transaction-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar
|
二、配置文件
这里配置你要在什么时候执行你的定时任务,执行的是什么方法,如下面是在2016.11.10 23:00:00,执行com.seewoedu.train.quartz.GenerateRewardListTask的generate方法,这里使用cron指定了执行的时间,相关语法可查看https://www.zzvips.com/article/90148.html
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 启动触发器的配置开始 -->
<bean name="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myJobTrigger" />
</list>
</property>
</bean>
<!-- 启动触发器的配置结束 -->
<!-- quartz-2.x的配置 -->
<bean id="myJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<!--<value>10 0/1 * * * ?</value>--> <!-- Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。 -->
<value>0 0 9 10 12 ? 2016</value> <!-- Cron表达式“0 0 23 10 11 ? 2016”意为:只在2016.11.10 23:00:00 执行。 -->
</property>
</bean>
<!-- 调度的配置结束 -->
<!-- job的配置开始 -->
<bean id="myJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="myJob" />
</property>
<property name="targetMethod">
<value>generate</value>
</property>
</bean>
<!-- job的配置结束 -->
<!-- 工作的bean -->
<bean id="myJob" class="com.seewoedu.train.quartz.GenerateRewardListTask" />
</beans>
|
三、被执行的方法
?
|
1
2
3
4
5
6
7
8
9
10
11
|
public class GenerateRewardListTask {
@Autowired
private GiftReceiveRecordService giftReceiveRecordService;
org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class);
public void generate() throws Exception {
giftReceiveRecordService.generateRewardMember(); //执行的方法
}
}
|
四、需要注意的问题
1、执行时间指定到年份时,会存在一个问题,就是在你在过了这个时间后再启动项目的时候,他会一直报一个memory leak的错误,大概的意思是你的定时任务将永远不会被执行,导致项目一直启动不了。
2、定时任务是通过你部署项目开始计算到你要执行定时任务的时间间隔,而不是实时获取你服务器时间的方法实现的,所以通过修改服务器时间想测试定时任务是否生效是不可行的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
原文链接:http://www.cnblogs.com/0201zcr/p/6099156.html
相关文章
猜你喜欢
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
根据建站程序是什么意思:使用建站程序创建响应式网站的关键步骤是什么?
2025-05-25 38 -
2025-06-04 105
-
2025-05-29 98
-
2025-05-29 46
-
2025-05-27 41
热门评论

