作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [闲聊] 排程系统
时间Mon Jan 1 09:33:35 2018
我其实有想过另一种 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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.253.164.127
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1514770418.A.EEB.html
修正写错的地方。
※ 编辑: laechan (122.117.106.224), 01/01/2018 15:49:38