Re: [閒聊] 排程系統

作者: laechan (揮淚斬馬雲)   2018-01-01 09:33:35
我其實有想過另一種 crontab 的寫法,利用 times_check.c 每 2 秒
會去呼叫一次 heart_beat 的行為,讓它額外呼叫 crontab:
call_other(crontab,"check_crontab");
然後在 check_cronrab 函數裡頭先把目前的 crontab 排程全部讀進
來做迴圈判斷
foreach(c in crontabs)
{
match=0;
sscanf(now_times_str,"%d ...",now_min,now_hour,....);
if(min==now_min || min=="*" || 判斷 "-" 的情況) match+=1;
if(hour==now_hour || hour=="*" || 判斷 "-" 的情況) match+=1;
.
.
if(match>=5) // 代表該 crontab match 到目前的時間
catch(call_other(目標物件,目標函數,傳什麼參數過去));
}
這樣做的好處是,times_check 隨時會去讀 crontab,只要有 match
到時間,它就去做了,而不需要再透過 set_times_check 的方式去設
定幾秒後該做什麼。
嘛,這樣做也不是不行,而且理論上它不會造成 times_check 的心跳
停止。
為節省時間,我先採這種做法,最近會實驗,並會採行一些必要的判斷
,我希望使用者(wiz)能透過 crontab 指令的使用,順便學會 linux上
的 crontab 設定。
Laechan

Links booklink

Contact Us: admin [ a t ] ucptt.com