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 &