【问题标题】:Laravel Queue::later needs another Queue::later to triggerLaravel Queue::later 需要另一个 Queue::later 来触发
【发布时间】:2014-03-23 15:01:09
【问题描述】:

我已经设置了一个 laravel 队列并且正在使用 beanstalkd。

如果我使用 Queue::later(),那么作业会排队,但它不会在指定时间运行,直到我在预定时间之后使用 Queue::later() 发送另一个作业。

我的设置是否遗漏了什么,或者我的队列可能以某种方式搞砸了,如果是这样,我该如何清除所有内容并让它再次正常运行。

我正在使用此处详述的设置 http://fideloper.com/ubuntu-beanstalkd-and-laravel4

有问题的服务器是 Ubuntu 12.04

我刚刚在一台装有 Ubuntu 13.10 的新服务器上进行了所有设置,它按预期工作。

我想知道队列如何可能会以这种状态结束,以及如何着手修复它。 Laravel 报告没有失败的作业。

【问题讨论】:

  • 确定没有忘记运行 php artisan queue:listen?

标签: laravel laravel-4 beanstalkd


【解决方案1】:

Debian wheezy (7.6) 也有同样的问题

问题在于被认为是稳定的 beanstalkd 版本。 (v 1.4.6-1 是我确认存在问题的一个版本) 该问题已在后续版本中得到修复,不确定是哪个版本,但更新您的 Ubuntu 版本会将被认为稳定的版本(因此安装的版本)更改为已更正此问题的版本。 发这篇文章时的最新版本是 v1.10-1,不过 1.9-2 也应该没有这个错误。

因此,对于遇到此问题的任何人,请尝试更新您的 beanstalkd 版本,或使用不同的队列提供程序(如果您想继续使用本地服务,redis 将是您的最佳选择)。

【讨论】:

  • 郑重声明,发出Queue::push或Mail::Queue也会触发未完成项
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
相关资源
最近更新 更多