1、配置.env
QUEUE_DRIVER=redis
2、创建队列
php artisan make:job MailuserNewPost
app/Jobs/MailuserNewPost.php
...
public $user;
public function __construct(User $user)
{
$this->user=$user;
}
public function handle()
{
\Log::info('队列队列队列2'.$this->user->name);
}
public function failed(\Exception $exception)
{
\Log::error('失败');
}
....
3、派发任务
在web.php里测试
use App\Models\User;
use App\Jobs\MailuserNewPost;
Route::get('/queue',function (){
$users=User::all();
foreach ($users as $user){
dispatch(new MailuserNewPost($user));
//dd($user->name);
}
dd('done');
});
访问路由,派发任务
3、
composer require predis/predis ~1.0
composer require laravel/horizon
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
artisan queue:work --timeout=10 --tries=5
4、打开/horizon面板