2011-10-11 64 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以瞭解使用情況 –

相關問題