2011-10-11 36 views
1

我正在編寫一個調度程序,它抓取XML數據並插入到MySQL DB中 - 簡單的不是。但是我試圖找到的問題或邏輯就在這裏。 注意:我想在Windows環境中執行此操作,將來可能會將其配置爲其他平臺。如何在計劃任務之間共享數據

  1. 調度程序應該每5分鐘運行一次。
  2. 此腳本應該獲取條件/配置以分析和收集XML中的數據字段,這些條件可從MySQL表中獲取。
  3. 此表還定義了一個延遲,其中此腳本應檢查XML字段&延遲的差異。
  4. 這個腳本可以同時運行兩次,每5分鐘運行一次收集XML並檢查表(MySQL)中每次延遲的差異。
  5. 此腳本讀取XML數據字段並解析它,然後僅收集從上述MySQL表中定義的那些數據字段。
  6. 只有當狀態發生變化時纔會將收集到的數據插入到MySQL DB中,並且此狀態是從MySQL表中定義的。

意見/建議:

  1. 由於延遲,我不知道我應該如何存儲在其中將各計劃間共享的腳本配置。
  2. 無論如何在代碼中使用static變量來存儲這些數據?哪些將被分享b/w不同的工作?或不同的時間表?
  3. 基本上,我應該如何實現這個?性能方面更好的方法。

謝謝你的時間。

UPDATE:

其中一個建議是使用Java代碼作爲窗口服務,我們可以有不同的工作之間共享一些常見的數據(?)? - 是否有意義?

參考: Java Service Wrapper

回答

0

Concurensy就是答案,請嘗試創建線程池或執行人servises,並停止某些線程5分鐘,你甚至coud使用同步,如果幾個線程將使用相同的資源合作。 記住並不總是越多的線程使用更快,你會完成你的工作f.e. 3 threads- 2分鐘 5threads-6分鐘

*閱讀教程的主題

*創建FE與等待簡單線程5分鐘

*瞭解線程池/ synchnizations和共享資源的開發一些教程(腳本部分) *測試找到最優化的方式