Laravel+Beanstalk

2019-05-28  本文已影响0人  hadi01

本文基于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

上一篇 下一篇

猜你喜欢

热点阅读