【问题标题】:Beanstalkd running all jobs in the queue simultaneously on forge queue workersBeanstalkd 在伪造队列工作人员上同时运行队列中的所有作业
【发布时间】:2016-09-14 11:40:51
【问题描述】:

我在 Laravel Lumen 5.1 上运行 API 构建,但在使用 beanstalkd 作为驱动程序时,我似乎无法让 Forge Queue Worker 正常工作。似乎同时运行队列中的所有作业

我正在使用 Forge UI 来设置驱动程序

Queue Worker setup

还有 .env 驱动程序 The .env drivers

队列系统在没有任何工作人员处理的情况下手动运行时工作正常。

如果您需要更多信息来帮助我,请尽管询问!

【问题讨论】:

    标签: laravel queue lumen beanstalkd forge


    【解决方案1】:

    消息队列的目的是允许并行处理。如果您有更多的工人,例如:更多的线程,它将同时运行尽可能多的作业。

    为了实现非同时,这是违反直觉和违反消息队列原则的。您可以使用 1 个工作人员来实现这一目标,但不建议这样做,因为您没有利用强大的功能和可扩展性。

    【讨论】:

    • 我不确定你是否理解我的问题。我只有一个队列工作者,这是故意的,因为它处理的工作相当大,我不想让服务器超载。问题是它同时运行所有作业,而不是等待每个作业完成,然后再开始下一个作业。
    • 您为工作设置的 TTR(解决时间)是多少。默认值通常为 60 秒,如果您的工作人员没有完成,beantalkd 服务器会将相同的工作分配给另一个工作人员实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2017-02-01
    • 2020-01-28
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多