2016-11-28 67 views
0

我需要一個cron表達式,將會觸發每隔一天不包括週末。例如: 時間表從星期一開始。該計劃通過以下方式繼續:我需要一個特定的石英cron表達式

  • (第一週)週一>週三>週五
  • (第二週)週二>週四
  • (第三週)週一>週三>週五
  • (第4周)週二>週四

這有可能只使用cron的?我知道一個解決方案就是每天運行它,並在週末「手動」運行時阻止其運行。

+0

我的意思是「每隔一天」,而不是「每秒」。像星期一,星期三,星期五,跳過星期二等 – Rummy

回答

0

也許像可以幫助...

* * 1-31/2 * mon-fri command.sh 

這意味着,「在從1每2天的日每分鐘通過31日和每天的星期 - 從星期一到星期五「。

https://crontab.guru/#_ _1-31/2 _ * _週一至週五

http://corntab.com/?c=_ _1-31/2 _ * _週一至週五

(沒試過真機)

+0

不幸http://www.cronmaker.com/說這是不正確的。我想你不能設置1-31/2和星期一。其中一個應該是'?'。 – Rummy

+0

你好,cronmaker.com使用Quartz cron格式(我不知道它是什麼)。我的答案是正常的posix。你需要Quartz嗎? – tanaydin

+0

對,我正在使用Quartz :) – Rummy

0

我會考慮擴展表達格式,以便您的查詢看起來像:

S M H DoM M  DoW  Y 
0 0 10 1-31 * 1#1,3#1,5#1 * 

可以將此查詢理解爲:在每週的每一天的每一天的每天的10:00:00重複(星期一,星期三,星期五)並且它是月的第一個星期。

你會這樣定義查詢4(我考慮到1 1#3只是週一和3月份中的週數):

1.) 0 0 10 1-31 * 1#1,3#1,5#1 * 
2.) 0 0 10 1-31 * 2#2,4#2 * 
3.) 0 0 10 1-31 * 1#3,3#3,5#3 * 
4.) 0 0 10 1-31 * 2#4,4#4 * 

它運行相同的命令。但是,由於大多數評估者的侷限性,這是行不通的(我猜)。

如果你對.NET很熟悉,我做了一個能正確處理這些表達式的評估器,但它只是評估器,所以你只能得到你的事件發生的日期。 sheduler沒有與之整合的工作。 Click