2014-03-06 44 views
0

情況是這樣的Laravel 4 +鐵MQ的:隊列解僱,但郵件沒有發送

我有一個Laravel 4應用程序安裝,以加快這一進程鐵MQ。 可以預訂汽車並在網站上註冊。在這兩種情況下都會發送郵件。 問題是安裝Iron mq後郵件不再發送。剩下的工作就完成了,在數據庫中插入數據,但郵件沒有發送。 鐵MQ儀表盤上的隊列,而不是定期收到,顯然解僱..

這是路線

/* CARS */ 

Route::get('focus', function() 
{ 
return View::make('iframe'); 
}); 
Route::post('focus', '[email protected]'); 


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


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

// Route::post('passat', '[email protected]'); 

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

/* USER REGISTRATION */ 

Route::get('register', '[email protected]'); 
Route::post('register', '[email protected]'); 

眼下本書的過程中一輛汽車是速度更快,從8/9秒到3秒。這意味着鐵正在工作。雖然奇怪的是,我已經使Queue :: marshall()僅用於其中一個帖子路由,並且它適用於所有三個帖子。 用戶註冊也更快,沒有任何隊列:: marshall() 但是,在這兩種情況下都不會發送電子郵件。

這是郵件發送代碼

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

}); 

使用Mail ::發送它的工作原理(但非常緩慢),以郵件::隊列速度更快,但是該郵件沒有發送。

的主要問題是

爲什麼所有郵件都不會發? SMTP設置不應該改變,對吧?

Queue :: marshall()的適當位置是什麼? 如果對於註冊POST我必須調用正確的方法 Route :: post('register','HomeController @ postRegister'); 那麼,我必須把隊列::馬歇爾()? 是否有可能製造雙重路線?調用方法並使Queue :: marshall?

非常感謝! 以前的網站已經有相同的問題,永遠不會解決。

+0

您已輸入您的網址插入iron.io儀表板上的推送隊列中? – SamV

+0

是的,輸入的URL,隊列被接收,並顯然被解僱。所有時間的消息總數爲10,隊列大小爲1.這意味着隊列被觸發。但不明白郵件爲什麼不發送.. – johnnyfittizio

回答

3

這個元帥電話的目的只是爲了讓你的應用程序處理你的隊列作業。因此,爲您的名帥一個單獨的路線,將僅由鐵中:

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

然後你只需訂閱您的名帥網址在鐵隊列:

http://yoursite.com/queues/marshal 
+0

哦,太棒了......你值得諾貝爾和平! 非常感謝! – johnnyfittizio

相關問題