Cron
CRON - 在第 25-36 週的第 1-5 天執行
有沒有辦法安排 CRON 的執行:
- 僅在一年中的第 25 - 36 週期間
- 僅在周一至週五(非週末)
這是因為暑假期間人們對我們的產品下了很多訂單。每週更改 CRON 設置非常繁瑣。我知道@weekly 不能與星級設置結合使用,因此以下內容不是有效標記:
* * 1,2,3,4,5 * * @weekly php /app/cmd import >> /logs/cron-offers.log
您應該能夠以這種方式執行此操作:
# m h dom mon dow command * * * * 1-5 /bin/bash -c "if [ `date +%W` -lt 15 ] && [ `date +%W` -gt 11 ]; then php /app/cmd import >> /logs/cron-offers.log; fi"
把你正確的周數放在第一和第二“
$$ $$”。
Cron 被認為是一個非常基本的調度程序,其語法不容易讓管理員制定更不常見的調度程序。Stock cron 沒有可用的周數,所以你必須要有創意。
根據
ncal -w 2018
第 25-36 周是:May June July August September Mo 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27 3 Tu 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28 4 We 2 9 16 23 30 6 13 20 27 4 11 18 25 1 8 15 22 29 5 Th 3 10 17 24 31 7 14 21 28 5 12 19 26 2 9 16 23 30 6 Fr 4 11 18 25 1 8 15 22 29 6 13 20 27 3 10 17 24 31 7 Sa 5 12 19 26 2 9 16 23 30 7 14 21 28 4 11 18 25 1 8 Su 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26 2 9 18 19 20 21 22 22 23 24 25 26 26 27 28 29 30 31 31 32 33 34 35 35 36
一種方法是創建多個批次,這些批次結合起來創建您想要的計劃。例如,首先簡單地選擇 6 月最後兩週的工作日,然後在第二份工作中選擇 7 月和 8 月的所有工作日,並將 9 月的第一天作為第三份:
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | * * 18,19,20,21,22,25,26,26,28,29 jun * php /app/cmd import >> /logs/cron-offers.log * * * jul,aug mon,tue,wed,thu,fri php /app/cmd import >> /logs/cron-offers.log * * 3-7 9 * php /app/cmd import >> /logs/cron-offers.log
另一種選擇是每天簡單地執行批處理並使用更強大的適當程式/腳本語言語法讓批處理本身(即您的 PHP 程式碼)確定它是否應該立即執行或退出。