簡體   English   中英

Laravel 4 + Iron Mq:已觸發隊列,但未發送郵件

[英]Laravel 4 + Iron Mq: Queues fired but the mail is not sent

這是情況

我有一個安裝了Iron mq的Laravel 4應用,以加快該過程。 可以預訂汽車並在網站上注冊。 在兩種情況下,都會發送郵件。 問題是,在安裝Iron mq之后,不再發送郵件。 其余所有工作都已完成,將數據插入數據庫中,但郵件發送否。 在Iron mq儀表板中,隊列被定期接收並明顯被解雇。

這是路線

 /*  CARS  */

Route::get('focus', function()
 {
return View::make('iframe');
 });
Route::post('focus', 'RegistrationsController@booking');


Route::get('sharan', function()
{
return View::make('iframe2');
 });


Route::get('passat', function()
{
return View::make('iframe5');
});

// Route::post('passat', 'RegistrationsController@booking');

 Route::post('passat', function()
 {
return Queue::marshal();    
 });

/*  USER REGISTRATION */

Route::get('register', 'HomeController@getRegister');
Route::post('register', 'HomeController@postRegister');

現在,預訂汽車的過程更快,從8/9秒到3秒。 這意味着鐵正在工作。 雖然很奇怪,我只將Queue :: marshall()用於發布路線中的一個,並且對所有三個都適用。.用戶注冊也更快,沒有任何queue :: marshall(),但是要點是在兩種情況下都不會發送電子郵件。

這是郵件發送代碼

 return \Mail::queue($this->view, $this->data, function($message) use($self)
{
   $message->to($self->email, $self->to)->subject($self->subject);

});

使用Mail :: send可以工作(但是非常慢),而使用Mail :: queue可以更快,但是不發送電子郵件。

主要問題是

為什么郵件不發送? SMTP設置不應更改,對吧?

Queue :: marshall()的正確位置是什么? 如果要進行POST登記,我必須調用適當的方法Route :: post('register','HomeController @ postRegister'); 然后,我必須將Queue :: marshall()放在哪里? 可以做兩條路線嗎? 調用該方法並使Queue :: marshall?

非常感謝你! 已經有以前的站點存在相同的問題,並且從未解決過。

此調度任務的目的只是使您的應用程序處理隊列作業。 因此,為您的元帥創建一條單獨的路線,僅鐵將使用該路線:

Route::post('queues/marshal', function()
{
    return Queue::marshal();    
});

然后,您只需要在Iron隊列中預訂元帥URL:

http://yoursite.com/queues/marshal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM