2010-07-07 166 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编写)中所述。