W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用 Queue
facade 上的 before
和 after
方法,可以指定在處理排隊任務(wù)之前或之后執(zhí)行的回調(diào)。如果要為控制面板執(zhí)行附加日志記錄或增量統(tǒng)計,這些回調(diào)會是絕佳時機。通常,你應(yīng)該從 服務(wù)提供者 調(diào)用這些方法。例如,我們可以使用 Laravel 的 AppServiceProvider
:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Queue;
use Illuminate\Support\ServiceProvider;
use Illuminate\Queue\Events\JobProcessed;
use Illuminate\Queue\Events\JobProcessing;
class AppServiceProvider extends ServiceProvider
{
/**
* 注冊任何應(yīng)用程序服務(wù)
*
* @return void
*/
public function register()
{
//
}
/**
* 啟動任何應(yīng)用程序服務(wù).
*
* @return void
*/
public function boot()
{
Queue::before(function (JobProcessing $event) {
// $event->connectionName
// $event->job
// $event->job->payload()
});
Queue::after(function (JobProcessed $event) {
// $event->connectionName
// $event->job
// $event->job->payload()
});
}
}
使用 Queue
facade 上的 looping
方法,你可以指定在 worker 嘗試從隊列獲取任務(wù)之前執(zhí)行的回調(diào)。例如,你可以注冊一個閉包來回滾以前失敗的任務(wù)留下的任何事務(wù):
Queue::looping(function () {
while (DB::transactionLevel() > 0) {
DB::rollBack();
}
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: