2012-04-26 42 views
2

我們實現了一個windows服務,它有幾個定時器。隨着時間的推移,定時器的邏輯變得越來越複雜。現在是時候重構我們的解決方案了,一種可能的方式是使用一個能夠處理我們需求的文檔化框架。處理重複性任務的框架

有類似的規則:

  • 啓動定時器A在每天上午9點

  • 啓動定時器B每2分鐘

  • 定時器A啓動不啓動任何其他計時器

  • 計時器C和d不允許同時

  • 012運行

我看着Quartz.net,因爲它有我們的列表的第一個2級的要求,但它不處理任何併發規則。

是否有任何框架,我可以看看?

+0

沒有答案,但Quartz.NET是相當不錯的。自己實現併發規則將是相當簡單的。 – 2012-04-26 09:33:16

+0

我對石英最喜歡的事情是,你可以使用crontab格式來描述您的時間,我很熟悉:http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger – 2012-04-26 09:34:33

回答

2

我有類似的要求:基本上你需要的是一個狀態機,可以很容易地序列化到磁盤或數據庫,某種方式可以很容易地指定狀態機使用分層狀態,一些方法來輕鬆指定時間事件之後,,)和某種方式來輕鬆知道何時將狀態機加載到內存中以基於當前時間提前狀態。

最後,我寫我自己的狀態機,因爲我沒有找到一個能夠滿足我的要求,尤其是時間事件和系列化的要求。您可以在Nuget Package中獲取源代碼。博客條目here。反饋歡迎。