2

我已经参考了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"

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

请帮帮我,怎么解决??

提前致谢

4

3 回答 3

4

我以不同的方式做到了,

请参阅步骤,它可能对其他人有帮助..

Cron/Shell 使用 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("nidhin@2basetechnologies.com","Test","Test");
        }
    }
    

2.设置754权限F:\websites\projectname\cake\console\cake

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

谢谢尼丁

于 2010-07-29T11:40:09.043 回答
3

听起来 PHP 找不到您指定的文件。检查路径是否正确。例如:

# incorrect path
/home4/enventur/public_html/pennystock/cron_dispatcher.php

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

现在,下一部分不会直接回答您的问题,但值得注意的是,CakePHP 外壳正是为此目的而设计的。

如果您创建了一个名为的 shell并将您的代码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 编写)中所指出的那样使用。

于 2010-07-07T12:53:03.700 回答
0

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

转到您的域 cpanel 帐户。

首先使用 cron 作业创建要运行代码的文件。并将文件上传到您的网站根文件夹。

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

谢谢。

于 2010-07-07T05:40:59.653 回答