作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [闲聊] 排程系统
时间Wed Jan 10 15:07:12 2018
杯具,今天才发现照我之前想的判断方式可能会有问题。
例如 * * 1 * * xxx->xxx
这意思类似每个月的 1 号做什麽事,问题在於
一、当天只做一次?
二、还是当天「每一分钟都做一次」?
因此合理的语法应该是,如果第 n 个栏位不是 * 的话,那麽
在 n 之前的栏位也不应该有 *。
今天会修改这部份的判断,在设定阶段就会防止这样的情况发
生,也就是说以下是可以的
* * * * * 每分钟
0 * * * * 每小时的 "00" 分
0 12 * * * 每天中午的 12:00 分
0 12 1 * * 每月一号的 12:00 分
0 12 1 1 * 每年的 1/1 号 12:00 分
0 12 1 1 3 每年的 1/1 号且符合当天是星期三的 12:00 分
而以下是不行的
* 12 * * * 不行,但可以允许 0-59 12 * * *
* * 1 * * 不行,但可以允许 0-59 0-23 1 * *
* * * 1 * .
* * * * 3 .
也就是说如果你确切地知道自己想做的排程是什麽,那就要用
明确的给法,而尽量减少不明确的给法--以免给错。
例如我希望今年除夕 2/15 晚上 20:00 分开拍卖会,我就应
该要这样给:
0 20 15 2 4
(保险起见,不要给 *、-、/ 等用法或许会比较安全一些)
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.117.106.224
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1515568035.A.821.html
1F:→ laechan : * 的使用量我可能会做限制, 这是比较单纯的做法 01/10 15:59
2F:→ laechan : crontab 有一部份可能要重写, 现在的写法不太保险 01/10 16:01
3F:→ laechan : crontabs 应该会改宣告为 mapping, 不同的使用者会 01/10 16:08
4F:→ laechan : 呼叫不同的crontabs, 另外呼叫主体改为 /std/user.c 01/10 16:08
5F:→ laechan : 这部份我再看怎麽写判断较好,比方wiz_lv(name)>0降 01/10 16:09
6F:→ laechan : 应该不难,晚上有空会改一下 01/10 16:09
7F:推 lamorak : 囧~除夕夜我在上海~都不知道能不能在电脑前面~哭哭 01/11 11:10
8F:→ laechan : 那个只是举例啦我不太可能除夕夜办拍卖会 01/11 11:33
9F:→ laechan : 如果真的除夕夜办就代表不会只办一场 01/11 11:33