2014-09-29 60 views
2

我試圖通過Plesk 11.5.30管理控制檯設置與Bolt.cm的cron作業。
博爾特任務調度文檔:https://docs.bolt.cm/v20/tasks在Plesk上使用Bolt設置cron作業11.5.30

計劃任務

我對apache用戶設置crontab如下:

Min  H  DM  M  DW  Command 
0  */1  *  *  *  /var/www/vhosts/mysite.com/httpdocs/app/nut cron 
0  */1  *  *  *  httpdocs/app/nut cron 

之所以在這裏兩個不同的命令是,我已經閱讀另一個線程故障排除Plesk的命令路徑應該是相對的域。我假設如果第一個失敗,第二個仍然會運行。我也假設上面的每個小時都會運行cron。

博爾特配置

在我的配置文件中的cron_hour設置爲凌晨3點。然而,由於收聽者被設置爲每小時事件CRON_HOURLY,我假定該設置被忽略/忽略。無論哪種方式,此設置已運行超過48小時,目前還沒有效果。

螺栓安裝

正如我已經添加以下到我的博爾特擴展,使運行時,它應該只是給我發電子郵件測試(以下已向下切入,以保持它短)。

use \Bolt\CronEvents; 

class Extension extends \Bolt\BaseExtension 
{ 
    function initialize() { 
     $this->app['dispatcher']->addListener(CronEvents::CRON_HOURLY, array($this, 'cronNotifier')); 
    } 

    function cronNotifier() { 
     // send email script... 
    } 
} 

我已經測試了我的電子郵件腳本個人,所以我知道它的工作原理。使用cron作業設置並假定正在運行,此功能從未被擊中。更重要的是,在數據庫中bolt_cron表仍然是空的。

如果有人可以幫助建議一些事情,我可以嘗試讓這個運行它將不勝感激。

THE FIX

爲了解決這個問題,我改變了我的時間表,每5分鐘(快速調試循環)執行。然後我做了如下發現:

  • 我必須設置公共的螺母文件執行權限(所以apache用戶可以執行它)
  • 了,我只使用了服務器的完整路徑版本的作品

謝謝@Gawain在正確的方向提示我。

回答

1

計劃任務

是的,這看起來是正確的。目錄位置的處理最近已得到增強,但您以前需要在Bolt目錄中調用螺母。

博爾特配置

cron_hour僅適用於日常,和更長的時間。最近我修正了一個錯誤,那就是午夜到凌晨3點的小時工作。

好的,應該在Bolt日誌中記錄有關運行cron事件的跟蹤。

如果您運行此操作,您是否看到小時工作觸發器和您的電子郵件發送?

./app/nut cron --run=cron.Hourly

如果這樣的作品,那麼問題是與系統的cron/crontab中,如果編輯直接被你使用crontab -e

另外,如果你在主的舊結帳,你可以嘗試的./app/nut

+0

右每次調用之前

cd /var/www/vhosts/mysite.com/httpdocs &&

前綴crontab命令部分......必須更改對nut文件的權限爲744.現在我得到了'--run「選項不存在.'如果只是cron,儘管我看到它經歷了每日,每週,每月,每年的任務和db更新。儘管沒有電子郵件。 – diggersworld 2014-09-29 10:42:07

+0

OK ...服務器的'crontab'現在正以「555」的'nut'文件權限運行。然而,我的擴展功能仍然沒有被執行,我在那裏也增加了一個'log'方法。 – diggersworld 2014-09-29 11:33:13

+0

立即工作。我的電子郵件仍然沒有發送,但我需要cron的功能已執行,所以我標記爲已修復。將電子郵件視爲一個單獨的問題。 – diggersworld 2014-09-29 11:48:08