crontriggerbeanspring quartz为什么tomcat启动后没有马上执行

crontriggerbean  时间:2021-06-06  阅读:()

quartz定时任务一般都是调用service么

spring的配置文件applicationContext.xml ——省略spring的相关配置: Xml代码 <!-- 定时任务 --> <!-- 加入定时任务类 --> <bean id="hand" class=&.fms.web.action.CronJobHand"></bean> <!-- 任务调度拦截 --> <bean id="jobHand" class=&.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="hand"/><!-- 指定具体拦截哪个定时任务 --> </property> <property name="targetMethod"> <value>jobHand</value><!-- 指定要执行的类里面的哪个方法 --> </property> </bean> <!-- 用cron表达式定义定时任务执行时间 --> <bean id="dohand" class=&.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobHand"/><!-- 指明要调用哪个任务 --> </property> <!-- cron表达式 --> <property name="cronExpression"> <!-- 每天10点15点执行一次--> <value>0 0 10,15,17 * * ?</value> </property> </bean> <bean id="jobCard" class=&.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="hand"/> </property> <property name="targetMethod"> <value>jobCard</value> </property> </bean> <bean id="docard" class=&.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobCard"/> </property> <!-- cron表达式 --> <property name="cronExpression"> <!-- 每天9:30和14:30执行一次--> <value>0 30 9,14,16 * * ?</value> </property> </bean> <!-- 让spring来自动管理quartz --> <bean id="startQuertz" lazy-init="false" autowire="no" class=&.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="dohand"/> <ref bean="docard"/> </list> </property> </bean> 定时任务类: 补充一点:spring配置文件里面要有ponent-scan 扫描到你的定时任务类 而且在类上加@Component就行了。

我的spring版本是2.5,3.X以上更简单。

maven crontriggerbean在哪个jar包

spring-context-support jar maven 坐标问答 ??<groupId&.springframework</groupId> ??<artifactId>spring-context-support</artifactId> ??<version>3.2.17.RELEASE</version>

QuartzJobBean什么意思

A:extends QuartzJobBean方法 1:定义任务(extends QuartzJobBean) package onlyfun.bb.Quartz; .quartz.JobExecutionContext; .springframework.scheduling.quartz.QuartzJobBean; public class QuartzDemo extends QuartzJobBean { private JobData jobData; //JobData为自定义类 public void executeInternal(JobExecutionContext context){ System.out.println(jobData.getData()+" is executed"); } public JobData getJobData() { return jobData; } public void setJobData(JobData jobData) { this.jobData = jobData; } } JobData.java: package onlyfun.bb.Quartz; import java.util.Date; public class JobData { public String getData(){ return "Data from JobData at "+new Date().toString(); } } 2: 配置 <!-- use Quartz --> <bean id="someData" class="onlyfun.bb.Quartz.JobData"></bean> <bean id="jobDetailBean" class=&.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="onlyfun.bb.Quartz.QuartzDemo"></property> <property name="jobDataAsMap"> <map> <entry key="jobData" value-ref="someData"></entry> </map> </property> </bean> <bean id="***TriggerBean" class=&.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="jobDetailBean"></property> <property name="repeatInterval" value="2000"></property> <property name="startDelay" value="1000"></property> </bean> <bean id="scheduledFactoryBean" class=&.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="***TriggerBean"/> </list> </property> </bean> 留意:在JobDetailBean的jobClass属性必须提供Job的类名称,而不是Job类的实例。

马踏天下Job所需的数据可以在jobDataAsMap属性中设置。

在任务的周期指定上,使用SimpleTriggerBean类来指定,与TimerTask指定方式类似。

排定Job用SchedulerFactoryBean类。

完成设置后,只要在启动Spring并读取定义文件后,计划任务就会执行。

3:测试 package onlyfun.bb.Quartz; import java.io.*; .quartz.Scheduler; .quartz.SchedulerException; .springframework.context.ApplicationContext; .springframework.context.support.ClassPathXmlApplicationContext; public class TestQuartzDemo { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println("启动Task:"); System.out.println("请输进 exit 结束Task:"); //A处 BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); while(true){ if(reader.readLine().equals("exit")) break; } //此句可以放在A处 Scheduler scheduler=(Scheduler)context.getBean("scheduledFactoryBean"); try { scheduler.shutdown(); } catch (SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 4:测试分析: 使用SimpleTriggerBean类只能做简单Job与Job之间的执行周期指定,儿童故事假如需要在指定时间执行,可以使用CronTriggerBean类。

职场生涯最好的减肥药是什么 修改配置文件如下: <!-- use Quartz --> <bean id="someData" class="onlyfun.bb.Quartz.JobData"></bean> <bean id="jobDetailBean" class=&.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="onlyfun.bb.Quartz.QuartzDemo"></property> <property name="jobDataAsMap"> <map> <entry key="jobData" value-ref="someData"></entry> </map> </property> </bean> <bean id="cronTriggerBean" class=&.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetailBean"></property> <property name="cronExpression" value="0 37-38 15 * * ?"/> </bean> <bean id="scheduledFactoryBean" class=&.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTriggerBean"/> </list> </property> </bean> 留意:CronTriggerBean的cronExpression属性指定格式:至少6个时间元素,上面表示天天的15:37-38分执行1次任务。

时间元素(按照顺序): 秒(0-59): 分(0-59): 小时(0-23): 每月第几天(1-31): 月(1-12或JAN-DEC): 每星期第几天(1-7或SUN-SAT): 年(1970-2099): 其中:不用设置的用”?”. (1)每月第几天和每星期第几天是互斥的,两个只能设置1个。

假如有好几个时间点,可以使用”,”符号,例如:”0 0 10,12,14 * * ?”表示天天的10时,12时,14时执行Job. (2)对于连续时间可以使用”-”符号。

例如:”0 10,12,14 1-15 * ?”表示每月的1到15日10时,12时,14时执行Job. (3)时间格式的年可以不用制定。

例如”0 0 10,12,14 ? MON 2006”表示2006年每星期一的10时,12时,14时执行Job. B:不需要继续的任务制定方法 使用Spring不一定需要继续QuartzJobBean类来定义1个Job类,可以使用MethodInvokingJobDetailFactoryBean来直接指定执行某个对象的方法。

如何配置Spring定时器准确运行时间?

Spring中有自带任务调度框架Quartz ,直接在xml配置文件中配置就好。

一般我们使用spring定时器的时候都是配置的固定时间在spring配置文件中,如果我们有一个时间设置页面,通过这个页面设置定时器的执行时间,就可以达到动态执行的效果。

上代码: .test.action; import java.text.ParseException; import javax.annotation.Resource; .quartz.Scheduler; .quartz.SchedulerException; .springframework.scheduling.quartz.CronTriggerBean; .springframework.web.context.WebApplicationContext; .springframework.web.context.support.WebApplicationContextUtils; .opensymphony.xwork2.ActionSupport; public class TestAction extends ActionSupport{? @Resourcepublic CronTriggerBean triggerBean; ? //系统? public CronTriggerBean triggerTempBean;? @Resource?private Scheduler scheduler;? private String configTime; public String configTime(){? try {? /*得到系统设置的定时器执行时间 */System.out.println(triggerBean.getCronExpression()); /*得到指定定时器, testDoTrigger为applicationContext.xml中CronTriggerBean*/ triggerTempBean = (CronTriggerBean) scheduler.getTrigger("testDoTrigger", Scheduler.DEFAULT_GROUP); /*指定定时器的执行时间*/ System.out.println(triggerTempBean.getCronExpression()); /*将指定定时器的执行时间设置为从前台传递过来的时间*/ triggerTempBean.setCronExpression(configTime); /*让设置生效*/ scheduler.rescheduleJob("testDoTrigger", Scheduler.DEFAULT_GROUP,triggerTempBean); } catch(ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch(SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } return SUCCESS; } public String getConfigTime(){ return configTime; } public void setConfigTime(String configTime){ this.configTime = configTime;}

spring quartz为什么tomcat启动后没有马上执行

加上 <property name="startupDelay" value="60"/> 试一下 <bean class=&.springframework.scheduling.quartz.SchedulerFactoryBean"> <!--必须,QuartzScheduler 延时启动,应用启动后 QuartzScheduler 再启动--> <property name="startupDelay" value="60"/> <property name="triggers">

ProfitServer$34.56/年,5折限时促销/可选西班牙vps、荷兰vps、德国vps/不限制流量/支持自定义ISO

ProfitServer怎么样?ProfitServer好不好。ProfitServer是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对...

GigsGigsCloud(年付26美元)国际线路美国VPS主机

已经有一段时间没有听到Gigsgigscloud服务商的信息,这不今天看到商家有新增一款国际版线路的美国VPS主机,年付也是比较便宜的只需要26美元。线路上是接入Cogentco、NTT、AN2YIX以及其他亚洲Peering。这款方案的VPS主机默认的配置是1Gbps带宽,比较神奇的需要等待手工人工开通激活,不是立即开通的。我们看看这款服务器在哪里选择看到套餐。内存CPUSSD流量价格购买地址1...

paypal$10的代金券,选购美国VPS

paypal贝宝可撸$10的代金券!这两天paypal出了活动,本次并没有其他的限制,只要注册国区的paypal,使用国内的手机号和62开头的银联卡,就可以获得10美元的代金券,这个代金券购买产品需要大于10.1美元,站长给大家推荐几个方式,可以白嫖一年的VPS,有需要的朋友可以看看比较简单。PayPal送10美元活动:点击直达活动sfz与绑定卡的号码可以重复用 注册的邮箱,手机号与绑的银联卡必须...

crontriggerbean为你推荐
at89s52单片机有谁知道单片机如AT89c52,AT89s52具体是指什么含义啊?华为总裁女儿为啥姓孟孟晚舟姓孟,任正非姓任,孟晚舟怎么是任正非的女?assemblyinfoasp.net这几个文件是干什么的?qq网络硬盘怎么用qq网络硬盘kjava谁能告诉我KJAVA是什么意思和普通的JAVA程序有什么区别?点心os点心操作系统?病毒分析网站谁给个病毒网站分析的工具?哪找?谢谢了,大神帮忙啊视频比特率是什么视频比特率黑客技术学习我想学习黑客技术请问应该怎么学armv5teMaxWit嵌入式Linux魔鬼训练营用的是什么开发板?有谁知道?
备案域名查询 备案未注册域名 谷歌域名邮箱 5折 服务器架设 空间服务商 刀片服务器是什么 酷番云 外贸空间 服务器论坛 阵亡将士纪念日 广州主机托管 hdsky 海外加速 linux命令vi neicun ssd dmz主机 电脑主机响 紫田网络 更多