spring利用squertz实现定时任务

网友投稿 232 2023-06-16


spring利用squertz实现定时任务

前言

说起定时任务,开发的小伙伴们肯定不陌生了。有些事总是需要计算机去完成的,而不是傻傻的靠我们自己去。可是好多人对定时器总感觉很陌生,今天就带小伙伴们揭开它的神秘面纱,讲解一下spring利用squertz实现定时任务。

一、需要的Jar

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指定了执行的时间,相关语法可查看//jb51.net/article/103861.htm

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:p="http://springframework.org/schema/p"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-3.0.xsd">

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

class="org.springframework.scheduling.quartz.Cronhttp://TriggerFactoryBean">

0 0 9 10 12 ? 2016

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

generate

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:p="http://springframework.org/schema/p"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans-3.0.xsd">

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

class="org.springframework.scheduling.quartz.Cronhttp://TriggerFactoryBean">

0 0 9 10 12 ? 2016

class="org.springframework.scheduling.quartz.Cronhttp://TriggerFactoryBean">

0 0 9 10 12 ? 2016

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

generate

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

generate

三、被执行的方法

public class Generatehttp://RewardListTask {

@Autowired

private GiftReceiveRecordService giftReceiveRecordService;

org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class);

public void generate() throws Exception {

giftReceiveRecordService.generateRewardMember(); //执行的方法

}

}

四、需要注意的问题

1、执行时间指定到年份时,会存在一个问题,就是在你在过了这个时间后再启动项目的时候,他会一直报一个memory leak的错误,大概的意思是你的定时任务将永远不会被执行,导致项目一直启动不了。

2、定时任务是通过你部署项目开始计算到你要执行定时任务的时间间隔,而不是实时获取你服务器时间的方法实现的,所以通过修改服务器时间想测试定时任务是否生效是不可行的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java BASE64Encoder详细介绍及简单实例
下一篇:java判断中文字符串长度的简单实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~