laravel定时任务 + 在定时的基础上 使用队列

一、定时任务代码:

  1. 创建命令(php artisan make:command SendEmails) 会在app/Console/Commands 目录中创建一个新的命令类
  2. 编写调用名称,命名描述,执行命令在handle()中编写逻辑代码
  3. 在 app/Console/Kernel.php 文件中的 schedul() 中 调用并定时执行

二、定时任务服务器

直接运行定时任务是 php artisan XXXXXXX(定时任务名称)  

查看命令是crontab -l -u www

编辑命令是crontab -e -u www

查看文件权限是 ls -l

需要特别注意,/home目录下需要www用户目录,项目的文件归属需要是www用户

git pull完成后需要执行chown -R www.www * 赋予权限
用www用户设置cron,需要在home目录下添加www目录  mkdir www

参考案例:

https://learnku.com/docs/laravel/7.x/artisan/7480

https://learnku.com/docs/laravel/7.x/scheduling/7492#scheduling-artisan-comma

三、队列代码

  1. 在 app/Console/Kernel.php 文件中的 schedul() 中 调用并定时执行
  2. 在定时任务中调用模型方法
  3. 命令创建队列功能,在模型中调用实例化队列, 定义队列名传送
  4. 在队列方法中编写写操作功能

四、队列服务器操作

  1. 下载安装supervisor  命令:sudo pip install supervisor
  2. 编写/etc/supervisord.conf 文件 
    命令: echo_supervisord_conf > /etc/supervisord.conf 
    案例改最后两行:[include] files = /etc/supervisor/*.conf
  3. 命令:mkdir /etc/supervisor 
  4. 新增一个 Supervisor 配置文件
  5. 注意:日志地址,queue名称,redis 等配置
  6. 重载  supervisorctl reload

  7. 查看运行 ps -ef|grep 'queue:work'

  8. 归属需要是www用户 chown -R www.www *

  9. 直接运行定时任务是 php artisan XXXXXXX(定时任务名称)

参考案例:

使用 Supervisor 管理 Laravel 队列进程 | Laravel | Laravel China 社区

https://segmentfault.com/a/1190000010557726

supervisor 管理 Laravel 队列如何配置? | Laravel | Laravel China 社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值