程式大概流程,如圖所示。
uj5u.com熱心網友回復:
這程式流程圖畫的亂糟糟的判斷完畢怎么可以是個雙箭頭,不是應該回圈,回到前面,重新判斷嗎?
任務都結束了,還能回到判斷來?
你先把所有的雙箭頭都改成單箭頭,邏輯就清楚了
uj5u.com熱心網友回復:
好吧,圖片修改。
uj5u.com熱心網友回復:
建一張任務表,規定好是否重復執行,執行時間,下次執行時間,然后timer啟動不斷去掃面這張表就是了uj5u.com熱心網友回復:
謝謝。
那這張表最好用什么方式呢?資料庫、xml、還是直接放在記憶體里面?
用來回圈遍歷的佇列,用List,還是ConcurrentQueue?
uj5u.com熱心網友回復:
Quartz.net:https://github.com/quartznet/quartznetuj5u.com熱心網友回復:
+1,建議了解下這個
uj5u.com熱心網友回復:
--------------------------------------------------------------
任務表,最后一次執行時間,執行頻率(每隔N分鐘),是否重復執行可要可不要因為既然是任務就多半是重復的吧,,是否正在執行,。。。。其他欄位自己看著辦, sql,sqllite 都可以,這個不是重點,程式啟動后掃描這個表,用timer, while true隨便,不過建議用while true,因為每個任務執行間隔可能不一樣,掃描后得到當前時間,在判斷是否已經達到執行頻率,如果達到就開起thread (一定要開啟執行緒,讓N個任務同時走,不要讓走A任務的時候耽誤B任務,切記),執行,同時把該正在執行的任務狀態修改了。。。。。。 執行后不管是執行成功或者是執行失敗在把狀態修改回來。
特別注意一點,程式開始的時候把這個表所有執行狀態都修改為" 沒有執行" ,防止上次正在執行任務的時候程式掛了或者電腦重啟,造成狀態值沒有被改回來而永遠不會激發任務。
uj5u.com熱心網友回復:
題主,這個你弄出來了嗎,能發個郵箱參考下嗎,剛需,或者給個聯系方式,謝謝uj5u.com熱心網友回復:
稍微正常點的應用在執行任務時都是并發多執行緒的,而你這個流程圖并不具有半點并發多執行緒的邏輯,所以圖基本上是可以廢棄了。uj5u.com熱心網友回復:
在記憶體中保存一個物件資料集合,并且for回圈它,有什么可糾結的呢?大不了需要在遍歷時放到 lock(){....} 管理控制區中同步一下處理程序。其實所謂的“佇列、回圈”不占演算法的十分之一,技術點并不在這里。uj5u.com熱心網友回復:
弄清楚流程圖,實作起來就很簡單了。uj5u.com熱心網友回復:
大佬們,我一個初學者,請教一下,不會實作呀轉載請註明出處,本文鏈接:https://www.uj5u.com/net/155170.html
標籤:C#
