本文基于Laravel5.5
一、安装Beanstalk
1、安装Beanstalk比较简单
#git clone https://github.com/kr/beanstalkd
#cd beanstalkd
#make && make install
检测是否安装成功:#beanstalkd -v
2、eanstalk-console界面化工具-php(版):https://github.com/ptrofimov/beanstalk_console
二、Laravel5.5
1、添加包
$composer require pda/pheanstalk ~3.*(为什么安装V3,应该安装V4会报错)
2、编辑.env文件中的QUEUE_DRIVER=beanstalkd(这个和config/queue.php文件connections配置一致)
3、生成任务类
$php artisan make:job ProcessSMS
//在任务类的handle方法中实现具体的业务逻辑代码
//在__construct(接收dispatch传过来的参数)
4、分发任务
一旦创建好任务类,就可以用它自身带的dispatch()方法分发它了,传递给dispatch方法的参数,将会被传递给任务的构造函数。
4.1、延迟分发,延迟10秒执行,ProcessSMS::dispatch($params)->delay(now()->addSecond(10))
4.2、分发任务到指定队列(注意:如果不是默认队列default,queue:work 中要指定监听队列)--queue=myQueue,default
ProcessSMS::dispatch($params)->onQueue('myQueue'); //默认是default
5、运行队列处理器
$php artisan queue:work 连接(可省略) --queue=myQueue,default
网友评论