laravel crontab定时任务

laravel 配置crontab定时任务三步走:

一、直接在php-fpm容器中配置

1、env:当Cron无法生效时,可能是Cron执行环境变量不正确引起的;确保cron服务开启;

#环境变量配置
>env > /tmp/env.output

#cron状态查看
>service cron status 

#cron服务开启
>service cron start

#查看cron命令配置
>vim /var/spool/cron/crontabs/root

#查看cron命令日志
>tail -f /var/log/cron.log

#cron服务重启
>sudo service cron restart

打开/tmp/env.output文件,将PATH字段整行添加至corntab文件顶部,corntab文件在/var/spool/cron目录下。

2、crontab命令创建:

#查看已创建的cron命令
>crontab -l
# m h  dom mon dow   command
* * * * * /usr/bin/php  /var/www/dev/artisan schedule:run >> /dev/null 2>&1

#查看php路径
>whereis php
php: /usr/bin/php7.2 /usr/bin/php /usr/lib/php /etc/php /usr/include/php /usr/share/php7.2-gd /usr/share/php7.2-json /usr/share/php7.2-intl /usr/share/php /usr/share/php7.2-xml /usr/share/php7.2-common /usr/share/php7.2-mbstring /usr/share/php7.2-opcache /usr/share/php7.2-sqlite3 /usr/share/php7.2-curl /usr/share/php7.2-readline /usr/share/php7.2-pgsql /usr/share/php7.2-zip /usr/share/php7.2-mysql /usr/share/php7.2-bcmath /usr/share/man/man1/php.1.gz

#添加cron命令
#小坑注:cron命令之后必须有回车换行
#小坑注:php路径必须为绝对路径,不能为相对路径
>crontab -e
# m h  dom mon dow   command
* * * * * /usr/bin/php  /var/www/dev/artisan schedule:run >> /dev/null 2>&1

2.1、小坑注:

通过 crontab -e 命令创建的 Cron 是属于 root 用户,如果定时任务在实行时主动写入日志或者遇到异常未捕捉,会创建 root 权限的日志文件,最终会导致 php-fpm 的 www 账号无法写入。

因此需要在创建 cron 的时候指定用户:

#个人管理的系统中 php-fpm 执行用户都是 www,请根据自己的实际情况调整代码。
>crontab -u www -e

3、容器中执行任务开启命令:

>artisan schedule:run

二、laradock workspace容器中配置

最新版的laradock支持在workspace中直接配置crontab

1. 配置laradock/workspace/crontab/laradock文件

 * * * * * laradock /usr/bin/php /var/www/project-name/artisan schedule:run >> /dev/null 2>&1

2.重新build workspace镜像

docker-compose build workspace

3.workspace build完毕后,重启workspace容器

docker-compose stop workspace
docker-compose start workspace

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值