laravel中的队列

Laravel 队列为不同的后台队列服务提供统一的 API,可使用多种驱动,eg:mysql,redis,Beanstalkd等,驱动已经封装,不需要管理这些驱动,只需要修改配置就可以更改驱动,在驱动之上的所有逻辑,包括分发任务和队列的执行操作都是统一的,这就是laravel的优势。

修改驱动为database

  位置:.env

QUEUE_DRIVER=database

创建database的queue表

php artisan queue:table
php artisan migrate

创建任务SendMessage

php artisan make:job SendMessage

创建发送逻辑dispatch

  位置:app/Jobs/SendMessage.php

  private $notice;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(AppNotice $notice)
    {
        $this->notice = $notice;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $users = AppUser::all();
        foreach ($users as $user){
            $user->addNotice($this->notice);
        }
    }

启动队列

php artisan queue:work
或 nohup php artisan queue
:work >> /tmp/test &
原文地址:https://www.cnblogs.com/wanghaokun/p/10177792.html