gpt4 book ai didi

php - 如何使用 php 运行多个 beanstalk worker

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:49 24 4
gpt4 key购买 nike

截至目前,我只为我的项目运行一个 beantalk 工作线程,它处理基于 cron 的作业和实时作业。所以,我想把它分成两个 worker 。一名工作人员用于跟踪基于 cron 的作业,另一名工作人员用于跟踪实时异步作业。这样, worker 的效率就会得到提高。任何人都可以帮助我,

  1. 如何使用 php 运行和 deamonize 多个 beanstalk worker?
  2. 处理多个 beanstalk worker 的示例脚本?

注意:目前我正在使用 pheanstalk php 库。

最佳答案

使用 pheanstalk(或其他库),如果您想接受来自多个队列的作业 - 只需观察它们即可。

$pheanstalk->watch('testtube')
->watch('tube2')
->watch('tube3');
$pheanstalk->reserve(); // get the next job from any of the tubes (+ 'default')

至于处理 worker ,我目前正在使用 Supervisord对于我想继续运行的一些非常相似的脚本。它是一个基于 python 的守护进程,您要运行的脚本列在一个非常简单的配置文件中。 (添加更多工作人员实际上是更改单个数字,然后重新加载配置)。

我所做的一件事是基于博文 running-the-worker . Supervisord 运行一个 shell 脚本。该脚本运行 PHP,后者返回一个值(使用 exit($x))。如果我从 queue-runner 返回一个值(例如)99,我将退出 shell 脚本以关闭 worker。另一个值可能会立即重新启动 worker,其他任何东西,在重新启动之前休眠几秒钟。

关于php - 如何使用 php 运行多个 beanstalk worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com