2014-03-06 39 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

相关问题