2016-11-21 65 views
0

我在TYPO3計劃程序中發現了一個非常奇怪的行爲: 我創建了一個頻率爲* */1 * * *的任務,因此它應該每小時運行一次。但在「下一次執行」中寫道,它會在下一分鐘運行。 所以我嘗試使用「真實」秒,並將頻率設置爲「3600」(= 1小時)。現在它表明下一次執行將在3分鐘內完成。如果我使用「300」,它將在4分鐘內運行。TYPO3:錯誤的cronjob計時

這是TYPO3調度程序中的錯誤還是有人有一個想法這裏有什麼問題?

我的Debian 8.6,Apache 2的,PHP 7 在下面的crontab行運行TYPO3 8.4設置: */1 * * * * /usr/bin/php /var/www/fareith/htdocs/typo3/cli_dispatch.phpsh scheduler

+1

嘗試'1 * * * *'它應該在每小時的第一分鐘運行。 – bassxzero

+0

謝謝,這是工作 - 即使我使用0 * * * * - 並解決了我現在的問題,但無論如何,這是奇怪的行爲,不是嗎? – codeFareith

回答

6

你需要熟悉的語法crontab項。這語法是:

* * * * * command 
┬ ┬ ┬ ┬ ┬ 
│ │ │ │ │ 
│ │ │ │ └──── day of week (0-7, sunday is 0 or 7) 
│ │ │ └────── month (1-12) 
│ │ └──────── day (1-31) 
│ └────────── hour (0-23) 
└──────────── minute (0-59) 

如果你能解決的執行日期/時間部分的任何地方設置的值。可以通過用逗號分隔它們來設置多個值(無空格!)。

除了的,有符號*/3(星形由值除以),這意味着:在每一個值單位(在首位*/3意味着:每三分鐘)
所以像*/1 * * * * command一個條目是指:執行「命令」每一分鐘。
*/1與只是星*相同:在每個單元執行。

對於每小時執行一次,您需要通過設置任何固定值來修復分鐘值。

而對於秒的值:下一個執行時間是根據調度程序條目的上次執行(或創建時間)計算的。

最後:
調度作業無法運行往往比調度運行本身。正常情況下,調度程序每分鐘啓動一次(如您的示例所示),但在某些提供程序中,調度程序每15分鐘纔會調用一次(*/15 * * * * php ..../cli_dispatch.phpsh scheduler)。即使您在TYPO3中配置作業以更頻繁地啓動,它們也只會在調度程序本身的下一次運行時開始。

+0

感謝您的努力,但我知道,cron和crontab是如何工作的... 這不是我的問題的答案 – codeFareith

+0

如果您配置了* */1 * * *'並想知道爲什麼每分鐘執行一次該作業必須假定您不熟悉crontab語法。另一方面:SO不是錯誤追蹤者,而是解決問題的平臺。如果你的問題是:「TYPO3中可能存在一個bug」,你需要鬆懈地詢問。 –

+0

我想你沒看完整個問題。 btw:typo3-slack規則:「在stackoverflow上發佈問題,至少添加#typo3作爲標籤 - >在typo3-cms中粘貼鏈接並等待某人回答」。 – codeFareith