2012-02-08 65 views
2

假設我的網絡應用程序有兩個春季克朗作業計劃運行每分鐘/小時。在我重新部署我的應用之前,我不能關閉它,我必須等待工作正確完成。我可以在數據庫或其他地方提供一些標誌,這樣作業將停止迭代運行 - 每分鐘或每小時 - 在作業函數中放入一些檢查,以便在檢查到此標誌時在下一次觸發調用中返回/不執行任何操作。如何等待春季克隆作業完成從螞蟻生成腳本

但是,如何等待當前的工作呼叫完成?以及如何從螞蟻或其他外部腳本中查看它 - 選擇適合服務器關閉的好時機。

可能有解決方案把一些標誌放在數據庫或文件中,並閱讀它。但也許有一些更準確的方式 - jms或類似的東西?

回答

0

不使用數據庫,您可以使用JMX。 - 但在我看來:如果你已經使用了一個數據庫,但沒有JMX,那麼使用一個DB標誌或一個簡單的文件來指示定時器「停止」。

比使用國旗更好看,並檢查每個調用是否設置標誌將被shutdown()擊倒ThreadPoolTaskScheduleThreadPoolTaskExecutor。 但是這需要第二個任務(每分鐘或更短時間運行)來檢查標誌,然後關閉到調度程序。

爲了使ant任務等待一個時間範圍,在設置標誌後,爲了確保完成最後的任務,可以使用WaitFor任務。

0

如果您使用TaskExecutor來運行「cron」作業,那麼您可以使用skaffman在this answer中描述的方法來獲取任務執行結果。如果你需要從螞蟻那裏獲得這個信息,你可以使用JMS supportant-jms