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