2010-07-07 170 views
2

我已經提到了http://bakery.cakephp.org/articles/view/calling-controller-actions-from-cron-and-the-command-line並創建了cron_dispatcher.php並將它放在app文件夾中。CakePHP的cron作業

我已經爲我的用戶控制器的測試方法返回一些用於cron作業的測試電子郵件功能。

,我已經在我的Web服務器的控制面板中創建一個cron作業一樣

"/usr/bin/php/home4/enventur/public_html/pennystock/cron_dispatcher.php /users/test" 

但其作爲給我一個錯誤「未指定輸入文件。」

請幫幫我,怎麼解決?

由於提前

+0

還看到:HTTP://計算器。 com/questions/3190145/cakephp-running-controller-action-as-a-cron-job-not-working – deizel 2010-07-07 13:50:42

回答

4

我已經在不同的方式來完成它,

請參閱步驟,它可能有助於其他..

克朗/殼牌使用CakePHP框架結構:

  1. 創建

    F:\websites\projectname\app\vendors\shells\filename.php

    class ClassName extends Shell { 
        //var $uses = array('Post'); //name of Model 
    
        //Main function runs always when shell executes 
        function main() { 
         mail("[email protected]","Test","Test"); 
        } 
    } 
    

2。設置754權限F:\websites\projectname\cake\console\cake

  • 設置cron作業作爲/home4/enventur/public_html/pennystock/cake/console/cake -app "/home4/enventur/public_html/pennystock/app" ClassName >/dev/null 2>&1

    /dev/null 2>&1: for Suppressing warning/error/msg from server

  • 謝謝 Nidhin

    +0

    我試過你的解決方案,但不幸的是它給了我一個錯誤:'錯誤:Clas s的TestingShell無法加載。「我完成了所有與您所描述的完全一致的工作。你有什麼想法,爲什麼這不工作?謝謝! – linkyndy 2011-04-27 21:05:17

    +0

    不知道..可以在這裏發佈代碼嗎? – 2011-05-20 11:45:34

    +0

    我回滾到以前版本的Cake並不是很好。謝謝! – linkyndy 2011-05-21 10:46:28

    0

    cron作業是一個長期運行的進程,執行在特定的日期和時間的命令。

    轉到您的域名cpanel帳戶。

    首先使用cron作業創建要運行代碼的文件。並將文件上傳到您的網站根文件夾中。

    現在轉到cpanel帳戶中的「Cron job」部分,並在文本框中輸入文件路徑並設置您希望運行文件的時間shedule。

    謝謝。

    +0

    好的回答親愛的 – 2010-07-07 05:45:08

    3

    PHP的聲音無法找到您指定的文件。檢查路徑是否正確。例如:

    # incorrect path 
    /home4/enventur/public_html/pennystock/cron_dispatcher.php 
    
    # correct path (?) 
    /home4/enventur/public_html/pennystock/app/cron_dispatcher.php 
    

    現在,這下一部分並不直接回答你的問題,但值得注意的是,CakePHP shells被用於這一確切目的。

    如果你創建了一個名爲Mailer外殼和複製你的UsersController::test()代碼MailerShell::test(),你會說這就是從cron像這樣(再次,檢查路徑是正確的):

    /home4/enventur/public_html/pennystock/cake/console/cake -app /home4/enventur/public_html/pennystock/app mailer test

    通過這種方法,您將不必使用cron_dispatcher.php,如該古老的Bakery文章(在4年前的聖誕節爲CakePHP 1.1編寫)中所述。