【问题标题】:Laravel Queue: How to use on shared hostingLaravel 队列:如何在共享主机上使用
【发布时间】:2014-11-04 07:06:16
【问题描述】:

我已经阅读了有关使用 Beanstalkd 等的 Laravel 队列的教程,使用队列的想法很棒,因为在我当前的项目中,向注册用户发送 Welcome 邮件最多需要 10 秒来处理附件的原因的标志。我可以想象如果更多用户在一个实例上注册会发生什么。因此,为此使用队列会加快速度。

在我正在处理的共享服务器中,我没有SSH Access。因此,根据教程设置队列是遥不可及的。

我想知道没有SSH Access有没有办法设置Laravel Queue,如果有办法,我需要一个指南。

【问题讨论】:

  • 并非如此。只需使用 Laravel Forge 并迁移到新服务器。

标签: ssh laravel-4


【解决方案1】:

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

以下是 Laravel 的创建者 Taylor Otwell 的精彩视频: http://vimeo.com/64703617。你也可以阅读这个tutorial,它更详细地解释了如何在 Laravel 中使用 IronMQ。

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

您无需像使用 beanstalkd 那样使用 artisan queue:listen,您只需定义 IronMQ 在处理队列中的每个作业时调用的路由:

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

【讨论】:

  • 这是否意味着我不需要listen to queues?
  • 是的,没错。您只需将队列推送到 IronMQ,它将负责队列处理。我已经用一个小解释更新了我的答案。我在回答中链接到的视频中对此进行了很好的解释。
  • 就服务器端配置而言,它们是相同的无需在您的服务器上设置应用程序。对于与 Laravel 的其他特定集成,我不能说,因为我没有使用过 Amazon SQS(但我敢打赌,设置 IronMQ 所需的时间不会超过 5 分钟)。
猜你喜欢
  • 2018-07-11
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 2018-08-02
  • 2015-06-18
  • 2020-11-29
  • 2014-11-01
相关资源
最近更新 更多