2012-03-29 99 views
2

我正在開發一個項目,該項目將使用Java在Linux系統上實時記錄事件數據。
我把所有的HTML抓取的東西都放下了,沒關係,我需要弄清楚的是任務的調度和管理。開始在Linux上使用Java進行實時事件調度?

每週可能會有多達四十個事件發生,在不同的時間和事件可能持續三個小時。
我可以創建和更新這些事件隨意的日曆,我的問題是如何:

  1. 日程的處理湊在正確的時間每個事件,並更新時間表,如果有一個變化。
  2. 確保一旦刮擦過程開始,它會持續運行整個(不確定的)事件的持續時間。

任何人都可以建議如何最好地解決這個問題嗎?我不知道我需要從哪裏開始。

謝謝!

+0

你是什麼意思的「刮過程」? Linux進程或Java任務? – nobeh 2012-03-29 09:33:47

+0

對不準確。我的意思是一個java進程,爲相關內容擦去相關的源頁面並將其存儲到數據庫中。 – Mike 2012-03-29 09:36:26

回答

1

a)安排一個過程在正確的時間刮取每個事件,並且 更新計劃,如果有更改。

如果您不想使用庫,調度任務的好的起點可以是ScheduledExecutorService。雖然您可能會發現other scheduling frameworks對您的問題很有用,其中Quartz可以專門爲您提供如何根據當前計劃執行結果安排下一個任務的靈活性;它還提供了一個cron功能,因此如果您的日程安排得到修復,您可以利用固定的預定日曆。

b)確保一旦刮擦過程開始,它將保持整個(不確定)事件的持續時間爲 。

假設您使用的是HTML抓取庫,您不需要確保它正在運行,因爲它將是從您的應用程序啓動的Java任務對象。