0
我有一些執行CRUD,上傳和電子郵件的事件。我想排隊這些事件。我做了一些研究,發現我需要做的就是配置我的隊列驅動程序,並在我的事件偵聽器中實現ShouldQueue合同。由於我使用redis作爲緩存和會話驅動程序,因此我繼續使用redis作爲隊列驅動程序。當我在不使用ShouldQueue的情況下觸發我的事件時,一切正常,我收到電子郵件,數據被添加到DB ..等等。但是,當我將ShouldQueue添加到我的事件偵聽器並運行隊列時:listen我激活了我的事件,但沒有任何事情會在隊列中添加或執行。我也沒有收到任何電子郵件,DB ...等。我錯過了什麼?下面是我的代碼示例:Laravel 5.2排隊事件
.ENV文件
QUEUE_DRIVER=redis
應用程序\活動\聯繫我們\ CustomerContactUs
use SerializesModels;
/**
* Create a new event instance.
*/
public function __construct()
{
}
應用程序\監聽\ ContactedUs \ SendCustomerEmailToUs
private $mailer;
private $request;
public function __construct(Mailer $mailer, Request $request)
{
$this->mailer = $mailer;
$this->request = $request;
}
public function handle(CustomerContactedBullard $event)
{
....
$this->mailer->send('public.emails.contact_us',$this->request->all(),$params);
}
聯繫我們控制器
event(new ContactedUs\CustomerContactedUs());
終端I運行
php artisan queue:listen
謝謝
對不起忘了提,我也加入到EventServiceProvider這些類。我發現我的問題。我正在使用請求 - >進入我的聽衆。我必須通過事件構造函數傳遞表單數據。我現在遇到的問題是我的隊列無法訪問我的模型的全局範圍。當我查詢模型時,我有一個全局範圍集。隊列不訪問,所以我不能在我的查詢中不使用withoutGlobalScopes()的情況下進行查詢 – rafiaTech