消息隊列
到env配置文件中修改queue_connection=database 與數(shù)據庫連接
執(zhí)行步驟
1.遷移隊列需要的數(shù)據表
php artisan queue:table //創(chuàng)建遷移文件
php artisan migrate //執(zhí)行遷移文件
2.編寫任務類
php artisan make:job SendEmail //在app\Jobs\SendEmail.php
class SendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $email;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($email)
{
//
$this->email = $email;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::raw('隊列測試',function($message){
$message->to($this->email);
}
);
// Log::info('已發(fā)送郵件'.$this->email);
}
}
3.推送任務到隊列
class StudentController extends Controller
{
public function queue(){
dispatch(new SendEmail('642370212@qqcom'));
}
}
//數(shù)據庫中產生任務信息
4.運行隊列監(jiān)聽器
php artisan queue:listen //數(shù)據庫中任務信息消失
5.處理失敗任務
php artisan queue:failed-table //創(chuàng)建失敗的表的遷移文件
php artisan migrate //執(zhí)行遷移文件
php artisan queue:failed //失敗任務的詳細信息
php artisan queue:retry 1 //執(zhí)行指定的失敗任務
php artisan queue:retry all //執(zhí)行全部的失敗任務
php artisan queue :forget 4 //刪除指定的失敗任務
php artisan queue:flush //刪除全部的失敗任務