我已提及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"
但它给我一个错误,因为“没有指定输入文件。”
请帮助我,如何解决?
先谢谢
答案 0 :(得分:4)
我以不同的方式做到了,
请参阅步骤,这可能对其他人有帮助。
使用Cakephp框架结构的Cron / Shell:
创建
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.设置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:用于抑制来自服务器的警告/错误/消息
谢谢 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”部分,在文本框中输入文件路径,并设置要运行文件的时间。
感谢。