Laravel消息队列

使用Database队列驱动

  1. 创建一张数据表来存储任务
php artisan queue:table
php artisan migrate
  1. 在env文件中配置
QUEUE_CONNECTION=database
  1. 创建任务类
php artisan make:job TranslateJob
  1. 在任务类中编写逻辑
public function handle()  
{  
    echo time();  
}
  1. 再需要执行任务的地方,将任务推送到队列中
TranslateJob::dispatch();
// 或者延迟分发
StandardJob::dispatch()->delay(now()->addMinutes(5));
  1. 启动队列处理器
// --tries=3 最大尝试次数
php artisan queue:work --queue=TranslateJob --tries=3


// 测试监听
php artisan queue:listen

// linux 
nohup php artisan queue:listen &

消息队列参数传递

// 定义接收的参数
class ProcessExample implements ShouldQueue
{
    public $param1;
    public $param2;

    public function __construct($param1, $param2)
    {
        $this->param1 = $param1;
        $this->param2 = $param2;
    }

    public function handle()
    {
        // 处理任务的逻辑
    }
}

// 传递参数
ProcessExample::dispatch($param1, $param2);
或
ProcessExample::dispatch()->with(['param1' => $param1, 'param2' => $param2]);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容