spring自动调度问题,求指点

程序猿大哥 2013-05-13 07:44:30
spring配置
<!-- 定义触发器来管理任务Bean -->
<bean id="cronTriggerPunch"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<!-- 使用嵌套Bean的方式来定义任务Bean -->
<bean
class="org.springframework.scheduling.quartz.JobDetailBean">
<!-- 指定任务Bean的实现类 -->
<property name="jobClass"
value="com.zc.hr.webyzm.PunchJob"/>
<!-- 为任务Bean注入属性 -->
<property name="jobDataAsMap">
<map>
<entry key="empManager" value-ref="empManager"/>
</map>
</property>
</bean>
</property>
<!-- 指定Cron表达式:中午12点自动调度 -->
<property name="cronExpression"
value="0 0 12 * * ?"/>
</bean>
<!-- 执行实际的调度调度 -->
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean" id="timmer" scope="singleton" lazy-init="false">
<property name="triggers">
<list>
<ref local="cronTriggerPunch"/>
</list>
</property>
</bean>


现在这个配置是好使的,但是我只要对cron表达式做一点修改就不好使,比如改成0 15 12 * * ?就不好使,而且大多数上午时间都不好使,我把12点改成7点,10点都不好使,为什么呢。。。。。我只是换了个数字啊-------诶,,,,
还有十二点好使的时候也会延迟20秒左右,这是正常的么?
...全文
77 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
引用 9 楼 fangmingshijie 的回复:
反编译下,看看容器内的表达式是什么。
这个怎么反编译?。没弄过,
  • 打赏
  • 举报
回复
反编译下,看看容器内的表达式是什么。
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
引用 6 楼 fangmingshijie 的回复:
修改时间表达式后,有没有重新编译,看你是不是懒加载
每次改完之后都会reloading的,我也重启了多次tomcat,还是无济于事。。
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
引用 6 楼 fangmingshijie 的回复:
修改时间表达式后,有没有重新编译,看你是不是懒加载
我怕出现这种问题,还显示的设置了scope="singleton" lazy-init="false" 而且我还配置了一个servlet用getBean("timmer")手动让他加载了一下,我想问题不应该再出现在这了,
  • 打赏
  • 举报
回复
修改时间表达式后,有没有重新编译,看你是不是懒加载
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
看下com.zc.hr.webyzm.PunchJob这个类
package com.zc.hr.webyzm; import java.util.Date; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; import com.zc.hr.service.IEmpManager; /** * * @author Administrator * */ public class PunchJob extends QuartzJobBean { //标识,防止重复提交 private boolean flag = false; //依赖的业务逻辑组件 private IEmpManager empManager; @Override protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { System.out.println("可以执行?"); if( !flag ) { System.out.println("自动打卡开始,当前时间为"+new Date()); empManager.autoPunchJob(); } } public void setEmpManager(IEmpManager empManager) { this.empManager = empManager; } } 3Q
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
引用 2 楼 ch656409110 的回复:
这个不至于吧。。。。 http://decisiononeself.iteye.com/blog/645517 你看看这个,是不是参数指定出错了,,我以前用的时候还好。
我也很纳闷呢,0 15 7 ? * * 这个cron的意思是在每天上午7点十五自动执行对吧? 但是他就是不执行,而我把7换成10,也就是十点十五我再改系统时间就好使,我很无语啊, 如果是配置问题的话十点十五或者十二点这些也不应该好使啊,
  • 打赏
  • 举报
回复
看下com.zc.hr.webyzm.PunchJob这个类
  • 打赏
  • 举报
回复
这个不至于吧。。。。 http://decisiononeself.iteye.com/blog/645517 你看看这个,是不是参数指定出错了,,我以前用的时候还好。
程序猿大哥 2013-05-13
  • 打赏
  • 举报
回复
求指点,没人吗?。。。。。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧