可以通過建立表[id,name,status,func,timer,last_time,created_at] 來統一存放專案中的計畫任務指令碼,通過簡單的配置
能將各計畫任務抽象成簡單的任務類,然後通過crontab中配置的單個入口對其進行統一訪問,從而減少了上線**對
線上伺服器環境進行修改的麻煩.
然後此處有一些坑,因為任務按功能性質劃分可能有好幾種,比如:
1. 單次執行,立刻結束,同一時刻可執行多個例項
2. 守護程序,同一時刻只能執行乙個例項
對 第二種 需要
加鎖 機制,還要防止程式因為出現爆錯,異常等情況沒有解鎖,導致不能再次啟動此種任務
對於此種任務還需要考慮執行期間如果因其他需求變更,如何快速方便的終止此任務
猜想 通過 任務id 來實現鎖機制,每次任務執行時均需要申請鎖,每次申請的鎖均有固定的使用配額,此種任務
每批次執行完成後均需消耗一次使用配額,當配額為0時則需要向系統重新申請鎖.
lock_id: $task_id
lock__quota: $quota
每次重新申請鎖,均需再次讀取任務配置表中該任務的配置資訊
如果申請失敗(-1),則關閉此次執行,等待下次執行. 這樣當想中止此種任務時可採取2種方案:
1. 中止本次,只需將其使用配額設為-1
2. 完全禁止,重置本任務的status為禁用,再重置其使用配額為-1
任務結束之後,要釋放鎖,如果鎖釋放失敗,需要有乙個
無效鎖檢測機制來強制釋放
無效鎖的判定:
關鍵是 如何確定 任務例項是否是活著的,鎖配額 < 1 能否認定是無效鎖.會不會出現任務在重新申請鎖的過程中
被 無效鎖檢測機制給乾掉?
乾掉之後是否有影響?
--------------
以上是我的假想,求拍磚
關於WINDOUWS任務管理器的問題
windows 2000 xp 的任務管理器是乙個非常有用的工具,它能提供我們很多資訊,比如現在系統中執行的程式 程序 但是面對那些檔案可執行檔名我們可能有點茫然,不知道它們是做什麼的,會不會有可疑程序 病毒,木馬等 本文的目的就是提供一些常用的windows 2000 中的程序名,並簡單說明它們的...
關於IOS的多工以及記憶體管理
一 看了很多fy為自己的可用記憶體是350mb還是380mb糾結,為了多優化出一點可用記憶體費腦筋。這種看法是不對的。所謂空載和滿載,是對作業系統來說的。而對於記憶體晶元電路而言,看到的只是0和1,就算是空閒的記憶體單元,也有0和1在裡面,它必須忠實地儲存所有資料,iphone4有512mb的記憶體...
VC關於置頂視窗的方法小結
自 將窗體置頂的方法有 將窗體置頂的api函式 setwindowpos m hwndtop,hwnd topmost,0,0,0,0,swp nomove swp nosize mfc pdlg setwindowpos cwnd wndtopmost,0,0,0,0,swp nomove swp...