可以重置cron触发器的计时器吗?

时间:2011-10-11 00:25:49

标签: java spring timer cron

我知道我可以重置Java计时器,但是,由于我已经使用cron触发器完成了很多工作,我想知道是否可以重置触发器触发之前的剩余时间。

这里有更多细节:

  1. 在网站上,从数据库中随机选择一个事件,并在首页上贴上“特色”事件。
  2. 每隔三个小时,活动就会被移除,并且会有一个新的特色活动重复该过程。
  3. 这就是cron触发器的用武之地。现在,我想添加一个额外的规则:

    如果采取了该事件的所有可用位置,我希望该事件过早地触发,立即使用新的特色事件旋转并恢复正常的每三小时模式。否则,售罄的活动只会在首页上徘徊为“精选”。

    可以这样做吗?我在tomcat 6上使用Java SpringSource框架。

    谢谢。

    更新:在继续进行了几次谷歌查询之后,我终于想出了http://spacemapper.sourceforge.net/mn8/api/org/media/mn8/util/cron/CronTrigger.html中的“reset()”功能。但这可以在Spring实现吗?

    以下是一些代码,计时器当前未设置为3小时,仅用于测试:

    <bean id="queueJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.---.-.service.scheduler.BaseQuartzScheduler" />
        <property name="jobDataAsMap">
            <map>
                <entry key="processorName" value="scheduleListingActions" />
                <entry key="methodName" value="revolveQueue" />
            </map>
        </property> 
    </bean>
    
    <bean id="queueCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="queueJob" />
        <property name="cronExpression" value="1-59/59 * * * * ?" />
    </bean>
    

1 个答案:

答案 0 :(得分:1)

您可以使用at(允许您安排何时调用程序)或只编写一个睡眠的守护进程。为此目的使用cron很麻烦。