2011-03-07 63 views
1

你如何在Kohana創建一個cron工作?我設置了一個正常的控制器,它延伸出Controller_Base,我運行命令行: /usr/bin/wget http://domain/controller/custom_cronKohana的Cron Job

但是我無法讓它工作。它只是不執行。沒有錯誤,沒有。我沒有在我的控制器中放置任何特殊代碼......正是我需要運行我的程序。所以如果有一個特殊的命令來調用cron作業,我沒有添加它(因爲我不知道它會是什麼)。

此外,我需要它來進行MySQL調用,所以我需要包括數據庫信息和連接,什麼不是(如果它不會自動執行)。而且我制定了一個定製模型。我將如何納入(如果它不自動)。

謝謝。

回答

7

php /path/to/index.php --uri=controller/action/etc/etc

調用它像這樣幾乎使它行動完全像在Web環境。唯一的區別是請求協議是'cli'。如果您要生成鏈接,則需要記住這一點。

+0

我不生成鏈接。只更新數據庫,以便僅運行數據庫調用。我是否需要添加任何額外的代碼行來包含數據庫句柄?另外,如何將請求更改爲'cli'? – Sunny 2011-03-07 20:56:41

+0

在CLI模式下一切正常。所以,如果你有已經使用數據庫連接的模型,它將「正常工作」。 Kohana會爲你做這件事,所以你不需要將協議改爲'cli'。 – zombor 2011-03-07 20:59:12

+0

所以你說我唯一的錯誤是命令行?好的,我將它改爲.... php/home/public_html/guestlist/--uri = cronjob/cronfunc ....仍然沒有成功 – Sunny 2011-03-07 21:04:27

0

所以,如果有喜歡的一個特殊的命令 調用cron作業,我沒加這 (因爲我不知道那會是什麼)

蠢的問題 - 有您是否將wget命令添加到crontab或類似?

另一方面,如果您希望製作一個「窮人的cron」,您可以嘗試創建一個可在每次頁面加載時運行的掛鉤,並檢查上次作業的運行時間,可能會將上次的時間戳存儲在一個文件或數據庫。

0

我不得不使用捲曲在捲曲

防爆我的火,這個腳本命令:

30  18  *  *  * curl "http://domain.com/controller/method" 

PHP和wget沒有工作,叫index.php文件並添加URI即使如上所述。

另外,僅供參考,最透明的方法來測試這只是從SSH手動運行線,看看結果是什麼。一旦我確認它在那裏工作,然後我把它放在cron中。