tp队列

2021-08-21 09:16:03 浏览1959次 作者: 雨寒

收藏

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还有其他方法,自己去探讨去吧。

下图案例:

截图 (9).png

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,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误