簡體   English   中英

花時間在C#中運行決策的最佳方法

[英]Best way to make time to run decisions in C#

我有一個應用程序,它是一個數據輪詢器/更新器,並且是否有一定的時間在周圍有大量的If / Thens。

換句話說,該程序從調度程序以多個調度程序運行,每次傳遞一個操作參數。 從那里開始,第一項檢查是對當前小時和分鍾的檢查,然后程序確定是否是運行數據輪詢器的正確時間。

現在您可能想知道為什么我要按時間表運行,那么我是否關心一天中的幾點鍾,為什么不按間隔運行? 好吧,在這種情況下,數據源來自我公司的另一個部門,他們有一個總督來確定需要點擊的次數。 它們都不可以被推理,因此我將命中次數限制為極有可能返回數據的命中次數。

回到問題所在,在大多數情況下,我需要每天在源頭更新一次的一組數據。 目前,我的運行間隔為5分鍾,但只有在晚上8點之后才去尋找新數據。

我的問題是,我擁有所有這些討厭的if / then語句,這些語句將當前時間與設置值進行比較,這總是使我認為我應該使它們在運行時可配置,從而導致配置代碼,最后我得到了大鼠代碼巢。

是否有我沒有想到的更好的模式,或者為此類問題構建的某種類型的軟件包?

看看Quartz.Net 這已經滿足了您的需求,並提供了一個不錯的API。

這是我使用過的東西:

一個計划對象,其中包含要執行的任務和執行的時間(或執行時間的列表)。

將所有任務收集在一個列表中,每五分鍾通讀此列表,以檢查是否應運行其中的一些任務。

這將減少If / then語句,並使單元測試更加容易。

希望這會有所幫助/ Morten

難道您使用Windows的“預定”任務僅通過參數運行代碼? 讓Windows Scheduler處理所有時序問題,並在適當的時候運行您的代碼。

這就是我們在這里解決類似問題的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM