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

LOCVPS新上日本软银线路VPS,原生IP,8折优惠促销

LOCVPS在农历新年之后新上架了日本大阪机房软银线路VPS主机,基于KVM架构,配备原生IP,适用全场8折优惠码,最低2GB内存套餐优惠后每月仅76元起。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐选择KVM),线路方面均选择国内直连或优化方案,访问延迟低,适合建站或远程办公使用。...

VirtVPS抗投诉瑞士VPS上线10美元/月

专心做抗投诉服务器的VirtVPS上线瑞士机房,看中的就是瑞士对隐私的保护,有需要欧洲抗投诉VPS的朋友不要错过了。VirtVPS这次上新的瑞士服务器采用E-2276G处理器,Windows/Linux操作系统可选。VirtVPS成立于2018年,主营荷兰、芬兰、德国、英国机房的离岸虚拟主机托管、VPS、独立服务器、游戏服务器和外汇服务器业务。VirtVPS 提供世界上最全面的安全、完全受保护和私...

HostYun 新上美国CN2 GIA VPS 月15元

HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...

crontriggerbean为你推荐
迅雷地址转换网页上的迅雷下载功能是怎么实现的,难道是用链接转换工具把普通下载地址转换成迅雷下载地址?谢谢 谢谢excel计算公式求excel函数公式大全企业资源管理系统企业人力资源管理系统的重要性?视频技术怎么做视频?小四号字Excel小四号字等于几号字jstz泰州哪里有民工市场超级播放器一共有哪些播放器?网络电话免费版有没有免费的网络电话?纯免费的监控插件观看远程监控时,提示需要一个插件来显示免费下载空间怎么下载免费的空间播放器
江西服务器租用 国内vps 网站域名备案 greengeeks 主机屋 stablehost 息壤备案 宕机监控 sub-process 坐公交投2700元 秒杀预告 最好的免费空间 域名评估 美国在线代理服务器 cdn加速是什么 沈阳主机托管 监控服务器 摩尔庄园注册 成都主机托管 宿迁服务器 更多