2014-11-04 103 views
1

我已阅读Laravel队列使用Beanstalkd等教程,使用队列的想法是太棒了,因为在我目前的项目中,发送一个Welcome邮件给注册用户需要长达10秒处理标识附件的原因。我可以想象如果更多的用户在一个实例注册会发生什么。所以,使用这个队列会加快速度。Laravel队列:如何在共享主机上使用

在我工作的共享服务器上,我没有SSH Access。所以,根据教程设置队列是非常困难的。

我想知道是否有一种方法来设置Laravel队列没有SSH Access,如果有办法,我需要一个指导。

+0

不是真的。只需使用Laravel Forge并迁移到新服务器即可。 – Laurence 2014-11-04 09:06:09

回答

2

您不能在共享服务器上使用Beanstalkd,因为您无法安装该服务,而且我也不知道任何托管服务为共享托管提供服务。但是,您可以使用IronMQ这是一项远程托管服务(因此您不需要在服务器上安装任何内容)。对于任何队列服务,Laravel队列API都是相同的,因此您可以像使用beanstalkd那样使用Queue::push

下面是由Laravel创建者Taylor Otwell设置的一个很棒的视频: http://vimeo.com/64703617。你也可以阅读这个tutorial,它解释了如何更详细地使用IronMQ和Laravel。

IronMQ是一个付费服务 ,但它确实有一个 Free Plan为开发者提供每月100万个API请求。

而不是使用artisan queue:listen像你这样的beanstalkd,你只是定义路线IronMQ到队列处理每个作业时调用:

Route::post('queue/receive', function() 
{ 
    return Queue::marshal(); 
}); 
+0

这是否意味着我不需要'听队列'? – BlackPearl 2014-11-05 19:08:56

+0

是的,没错。您只需将队列推送到IronMQ,它将负责队列处理。我已经用一个小小的解释更新了我的答案。在我的回答中链接到的视频中对此进行了很好的解释。 – Bogdan 2014-11-05 19:23:11

+0

好的,它是否像这样的亚马逊SQS? – BlackPearl 2014-11-05 19:32:26