【问题标题】:cron job with CakePHPCakePHP 的 cron 任务
【发布时间】:2010-07-07 05:10:31
【问题描述】:

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

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

请帮帮我,怎么解决??

提前致谢

【问题讨论】:

标签: cakephp cron crontab cakephp-1.3


【解决方案1】:

我以不同的方式做到了,

请看步骤,可能对其他人有帮助..

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

谢谢 尼丁

【讨论】:

  • 我已经尝试过你的解决方案,但不幸的是它给了我一个错误:Error: Class TestingShell could not be loaded. 我已经按照你的描述做了所有的事情。你知道为什么这不起作用吗?谢谢!
  • 我回滚到以前版本的 Cake 并且不能正常工作。谢谢!
  • 谁能给我发一个如何轻松设置crontab的例子??
【解决方案2】:

听起来 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

通过这种方法,您不必像那篇古老的 Bakery 文章(4 年前圣诞节为 CakePHP 1.1 编写)中所指出的那样使用 cron_dispatcher.php

【讨论】:

    【解决方案3】:

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

    转到您的域 cpanel 帐户。

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

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

    谢谢。

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 1970-01-01
      • 2011-05-20
      • 2013-02-26
      • 2011-12-03
      • 1970-01-01
      • 2011-05-28
      • 2015-01-08
      • 1970-01-01
      相关资源
      最近更新 更多