我需要学习如何使用Laravel中的cron作业.我可以看到文档没有指定这部分.我找到了一个教程,但它是关于Laravel-3的.你可以给我一些关于如何安排每天运行一次cron工作的建议吗?吗?有没有关于这个问题的教程?
到目前为止,我的代码如下:
JobDaemon.php:
info('fired'); } /** * Get the console command arguments. * * @return array */ protected function getArguments() { return array( //array('example', InputArgument::REQUIRED, 'An example argument.'), ); } /** * Get the console command options. * * @return array */ protected function getOptions() { return array( //array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null), ); } }
我使用以下命令进行设置
php artisan command:make JobDaemon
我的工匠文件如下:
我从我的控制台得到以下内容......
johnnemo@johnnemo:/opt/lampp/htdocs/e-support-uop$ tail -f /var/log/syslog | grep -i cron Jan 1 18:31:09 johnnemo crontab[4484]: (johnnemo) REPLACE (johnnemo) Jan 1 18:31:09 johnnemo crontab[4484]: (johnnemo) END EDIT (johnnemo) Jan 1 18:35:01 johnnemo CRON[5054]: (johnnemo) CMD (php /opt/lampp/htdocs/e-support-uop/artisan job-daemon) Jan 1 18:35:02 johnnemo CRON[5053]: (CRON) info (No MTA installed, discarding output) Jan 1 18:39:01 johnnemo CRON[5064]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)) Jan 1 18:40:01 johnnemo CRON[5076]: (johnnemo) CMD (php /opt/lampp/htdocs/e-support-uop/artisan job-daemon) Jan 1 18:40:01 johnnemo CRON[5075]: (CRON) info (No MTA installed, discarding output)
Antonio Carl.. 21
首先,您需要确保新命令已启动,因此如果您运行
php artisan list'job-daemon'必须在命令列表中
然后你测试它:
php artisan job-daemon它有用吗?很酷,现在你可以设置自己的编辑器:
export EDITOR=nano用它打开crontab:
[sudo] crontab -e执行类型到php的正确路径:
type php你应该得到类似的东西
php is hashed (/opt/lampp/bin/php)所以你的php可执行文件是
/opt/lampp/bin/php这将打开并编辑当前的cron作业,sudo是可选的打开root crontab,只需添加一行与你的:
25 10 * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon这将在每天上午10:25运行您的命令.
要每隔5分钟执行一次
*/5 * * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon然后你
tail
在syslog上看它运行:tail -f /var/log/syslog | grep -i cron你应该看到类似的东西
Jan 1 10:25:01 server CRON[19451]: (root) CMD (php /var/www//artisan job-daemon) 在你的命令中你不能真正在屏幕上打印东西,你不会看到它们打印,所以要测试你必须,例如,保存一些文件:
public function fire() { File::append('/tmp/laravel.txt', "fired\n"); Log::info('fired'); }然后
tail -f /tmp/laravel.txt实时查看结果.
首先,您需要确保新命令已启动,因此如果您运行
php artisan list
'job-daemon'必须在命令列表中
然后你测试它:
php artisan job-daemon
它有用吗?很酷,现在你可以设置自己的编辑器:
export EDITOR=nano
用它打开crontab:
[sudo] crontab -e
执行类型到php的正确路径:
type php
你应该得到类似的东西
php is hashed (/opt/lampp/bin/php)
所以你的php可执行文件是
/opt/lampp/bin/php
这将打开并编辑当前的cron作业,sudo是可选的打开root crontab,只需添加一行与你的:
25 10 * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon
这将在每天上午10:25运行您的命令.
要每隔5分钟执行一次
*/5 * * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon
然后你tail
在syslog上看它运行:
tail -f /var/log/syslog | grep -i cron
你应该看到类似的东西
Jan 1 10:25:01 server CRON[19451]: (root) CMD (php /var/www/<siteName>/artisan job-daemon)
在你的命令中你不能真正在屏幕上打印东西,你不会看到它们打印,所以要测试你必须,例如,保存一些文件:
public function fire() { File::append('/tmp/laravel.txt', "fired\n"); Log::info('fired'); }
然后
tail -f /tmp/laravel.txt
实时查看结果.