Laravel 创建定时任务
crontab -e
加入:
* * * * * php /path-to-your-project/to/artisan schedule:run >> /dev/null 2>&1
在 app/Console/Kernel.php 中加入计划任务
protected function schedule(Schedule $schedule) { // $schedule->command('inspire') // ->hourly(); // 15. 每隔一分钟执行一次 $schedule->call(function () { event(new RssCreatedEvent()); })->everyMinute(); }
写完计划任务后最好手动执行下,看是否书写正确:
php artisan schedule:run
手动执行任务正确执行。
但是等待1分钟之后并没有自动执行任务;
首先怀疑 cron 服务没有开启,
service cron status service cron start
查看输出日志:
tail -f /dev/blog
php:/usr/local/php/bin/php // 我配置了php的全局环境变量,但是还是报错
root@ubuntu-xenial:/vagrant/blog# tail -f /dev/blog /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found /bin/sh: 1: php: not found
这里需要指定php的绝对路径。
最终的写法:
* * * * * /usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1
查看 cron 执行日志:
vim /etc/rsyslog.d/50-default.conf
找到cron.log相关行,将前面注释符#去掉,保存退出,重启rsyslog
service rsyslog restart
tail -f /var/log/cron.log
root@ubuntu-xenial:/vagrant/blog# tail -f /var/log/cron.log Sep 26 11:51:01 ubuntu-xenial CRON[2799]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:52:01 ubuntu-xenial CRON[2817]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:52:01 ubuntu-xenial CRON[2818]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:52:01 ubuntu-xenial CRON[2819]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:53:01 ubuntu-xenial CRON[2837]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:53:01 ubuntu-xenial CRON[2838]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:53:01 ubuntu-xenial CRON[2839]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:54:01 ubuntu-xenial CRON[2862]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:54:01 ubuntu-xenial CRON[2863]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:54:01 ubuntu-xenial CRON[2864]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:55:01 ubuntu-xenial CRON[2889]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:55:01 ubuntu-xenial CRON[2890]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:55:01 ubuntu-xenial CRON[2891]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:56:01 ubuntu-xenial CRON[2909]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:56:01 ubuntu-xenial CRON[2910]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:56:01 ubuntu-xenial CRON[2911]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:57:01 ubuntu-xenial CRON[2929]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:57:01 ubuntu-xenial CRON[2930]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:57:01 ubuntu-xenial CRON[2931]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt) Sep 26 11:58:01 ubuntu-xenial CRON[2949]: (root) CMD (/usr/local/php/bin/php /vagrant/LaraBBS/artisan schedule:run >> /dev/null 2>&1) Sep 26 11:58:01 ubuntu-xenial CRON[2950]: (root) CMD (/usr/local/php/bin/php /vagrant/blog/artisan schedule:run >> /dev/blog 2>&1) Sep 26 11:58:01 ubuntu-xenial CRON[2951]: (root) CMD (echo "Hello world!" >> /tmp/cron_log.txt)
Comments (0)