作者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/m.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