当前位置: 旋风说(旋风PHPer分享网)> 技术文章> 正文
1:一般是一次行处理的事情太多,但是这个事情不是马上就需要执行的,这样的情况可以用队列来实现,可以要求马上执行还是30秒后执行。
2:首先引入,tp的话直接use
use think\Queue;
3:马上执行的操作
Queue::push('app\common\model\Job',['order_id'=>$order['id'],'driver'=>$driver_id_list]);
第一个参数是要处理队列的方法的 位置,系统会自动执行Job下面的fire方法,其中fire有两个参数($job,$data),第一个参数是job对象,第二个是push方法传进去的。
$job->delete(),是将这个任务删除,就不会再执行了,$job还有其他方法,自己去探讨去吧。
下图案例:
4:等待执行的操作
Queue::later(5,'app\common\model\Job',['order_id'=>$order['id'],'driver'=>$driver_id_list]);
later的方法有两个参数,第一个是几秒之后执行,第二个参数是data,执行道理和push一样。
5:命令行需要开启监听
进入根目录,执行php think queue:listen
命令:
queue:work
queue:restart
queue:listen
queue:subscribe
6:很简单的一个小操作,以后可以多用用
原链接:https://note.youdao.com/s/C9Rz0TVl
当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。
下一篇: 只允许部分ip访问2个页面的简单实现方法
相关文章
评论:
文明上网理性发言,请遵守 新闻评论服务协议