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">

零途云月付31.9元起,香港cn2 gia线路

零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新用户有优惠码:LINGTUYUN,使用即可打折。目前,零途云还推出性价比非常高香港多ip站群云服务器,有需要的,可以关注一下。零途云优惠码:优惠码:LINGTUYUN (新用户优惠,享受9折优...

星梦云:四川100G高防4H4G10M月付仅60元

星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...

日本CN2独立物理服务器 E3 1230 16G 20M 500元/月 提速啦

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

crontriggerbean为你推荐
刘建平现在赫章县委书记是谁chinapaychinapay是什么垃圾东西!草莓派草莓派怎么做企业资源管理系统企业管理系统都有什么功能y码亚洲码男女尺码是多少?搜索引擎的概念什么叫搜索引擎?搜索引擎的类型有哪些?印度尼西亚国家代码谁知道世界各国的国家电话代码?数据挖掘项目将来想从事统计分析和数据挖掘,需要哪些技能数据统计分析表EXCEL怎么制作百分比数据分析表图棋牌论坛三个知名的游戏相关论坛,要求有网址的!
备案域名 汉邦高科域名注册 国内免备案主机 permitrootlogin 监控宝 免费网络电视 长沙服务器 免费全能空间 智能骨干网 php空间推荐 中国电信测网速 腾讯实名认证中心 支付宝扫码领红包 万网空间购买 web服务器是什么 dnspod web应用服务器 免费蓝钻 免费网络空间 睿云 更多