2011-10-11 92 views
1

我知道我可以重置Java定时器,但是,因为我已经完成了很多工作,只使用cron触发器,所以我想知道是否可以重置触发器触发前留下的时间量。可以重置cron触发器的计时器吗?

这里有更详细一点:

  1. 在网站上,从数据库中随机选取的,并贴满头版的“精选”事件上的事件。
  2. 每三个小时,该事件将被删除,并且该过程将重复执行一个新的特色事件。

所以这就是cron的触发位在现在,我想添加一个额外的规则:

如果采取了所有该事件的名额,我想该事件过早火,旋转右带着新的特色活动,并恢复正常的每三小时模式。否则,一个售罄事件只会在头版上显示为“精选”。

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

谢谢。

更新:继续几个谷歌查询后,我终于想出了从http://spacemapper.sourceforge.net/mn8/api/org/media/mn8/util/cron/CronTrigger.html“重置()”功能。但是这可以在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

您可以使用at(它可以让你安排当一个程序将被调用),或者只写睡觉的守护进程。使用cron来达到这个目的很麻烦。

+0

你能详细说一下“at”吗?这是一个Java语句?谢谢。 –

+0

@ajkochanowicz我不知道你的java cron是如何实现的,但'at'是一个在unix机器上的程序,可以让你安排将来的行动。请参阅http://linux.die.net/man/1/at以了解使用情况 –