与CakePHP一起工作

时间:2010-07-07 05:10:32

标签: cakephp cron crontab cakephp-1.3

我已提及http://bakery.cakephp.org/articles/view/calling-controller-actions-from-cron-and-the-command-line并创建了cron_dispatcher.php并将其放在app文件夹中。

我已经为cron作业返回了一些测试电子邮件功能,以便在我的用户控制器的测试方法中运行。

我在我的网络服务器的控制面板中创建了一个Cron作业,如

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

但它给我一个错误,因为“没有指定输入文件。”

请帮助我,如何解决?

先谢谢

3 个答案:

答案 0 :(得分:4)

我以不同的方式做到了,

请参阅步骤,这可能对其他人有帮助。

使用Cakephp框架结构的Cron / Shell:

  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("nidhin@2basetechnologies.com","Test","Test");
        }
    }
    
  2. 2.设置F:\websites\projectname\cake\console\cake

    的754权限
    1. 将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:用于抑制来自服务器的警告/错误/消息

    2. 谢谢 Nidhin

答案 1 :(得分: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的shell并将UsersController::test()代码复制到MailerShell::test(),则可以从cron这样调用(再次检查路径是否正确) ):

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

使用这种方法,您不必使用{古代面包店文章(4年前圣诞节为CakePHP 1.1编写)中所述的cron_dispatcher.php

答案 2 :(得分:0)

cron作业是一个长时间运行的进程,它在特定的日期和时间执行命令。

转到您的域cpanel帐户。

首先使用cron job生成要运行代码的文件。并将文件上传到您的网站根文件夹。

现在转到cpanel帐户中的“Cron job”部分,在文本框中输入文件路径,并设置要运行文件的时间。

感谢。