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秒左右,这是正常的么?SpringBean

解决方案 »

  1.   

    这个不至于吧。
    http://decisiononeself.iteye.com/blog/645517
    你看看这个,是不是参数指定出错了,,我以前用的时候还好。
      

  2.   

    看下com.zc.hr.webyzm.PunchJob这个类
      

  3.   

    我也很纳闷呢,0 15 7 ? * * 这个cron的意思是在每天上午7点十五自动执行对吧?
    但是他就是不执行,而我把7换成10,也就是十点十五我再改系统时间就好使,我很无语啊,
    如果是配置问题的话十点十五或者十二点这些也不应该好使啊,
      

  4.   

    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
      

  5.   

    我怕出现这种问题,还显示的设置了scope="singleton" lazy-init="false"
    而且我还配置了一个servlet用getBean("timmer")手动让他加载了一下,我想问题不应该再出现在这了,
      

  6.   

    每次改完之后都会reloading的,我也重启了多次tomcat,还是无济于事。。