2013-04-12 70 views
6

我製作了一個在csv文件中導出產品的magento模塊。現在我想每天在23.55運行cronjob。我將config.xml設置爲magento cronjob wikimagento cron作業和cron_scheduler表

我的代碼:

<crontab> 
     <jobs> 
      <gcompany_runprofilescronjob> 
       <schedule> 
        <cron_expr>55 23 * * *</cron_expr> 
       </schedule> 
       <run> 
        <model>export/export_csv::runprofilescronjob</model> 
       </run> 
      </gcompany_runprofilescronjob> 
     </jobs> 
    </crontab> 

我還設置的cronjob服務器上。當cronjob運行時,magento中的所有cronjob都存儲在數據庫表cron_schedule中,但不存儲在我的gcompany_runprofilescronjob中。如果我設置例如不同的時間間隔:

<cron_expr>*/1 * * * *</cron_expr> 

我的cronjob被寫在數據庫中,但在執行我不想每一分鐘......我想,我的功能在23.55每天執行。任何建議我做錯了什麼?

+0

您可能有更好的機會獲得有關http://magento.stackexchange.com/的幫助 –

回答

4

我的第一步是安裝Fabrizio Branca的AOE Scheduler extension。 Fabrizio的擴展具有「列表視圖」功能,可以顯示當前在Magento的cron中註冊的所有Cron作業,以及它們的計劃運行時間。它還允許您立即在瀏覽器中運行cron作業(適用於調試cron作業),或安排作業立即執行。

如果您的cron作業未出現在AOE調度程序的列表視圖中,則cron作業的配置存在問題。嘗試清除配置緩存以確保Magento將解析您的config.xml以獲取最新更改。我假設您的XML節點位於XML文檔的層次結構中的適當位置,即直接在<config>節點下?

如果您的cron作業出現在列表視圖中,但仍然無法運行,請使用「生成計劃」功能重新生成cron計劃表。也可以嘗試使用AOE計劃程序的「立即運行」功能手動運行您的cron作業,以檢查錯誤或異常情況。

+3

您無需安裝完整的模塊。您可以將shell/scheduler.php腳本複製到安裝的shell文件夾中。然後在命令行中運行它,並獲得所有功能。 – SPRBRN

7

雖然這是一個非常古老的問題,但沒有正確的答案,所以讓我留下這裏給下一個人。

Magento的cron_schedule表只填充了計劃在不久的將來運行的cron作業。你在桌面上看不到你的cron工作的原因是因爲它每天只運行一次,正好在23:55。 Magento會在23:45左右將此cron作業添加到cron_schedule表,具體取決於您的服務器cron作業配置和System > Configuration > System > Cron中的Magento的cron作業設置。請注意0​​和Schedule Ahead for設置,它們定義了Magento生成時間表的頻率和時間。