问题标签 [beanstalkd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

ruby - 从 beanstalkd 队列中保留多个作业

有没有一种方法可以一次从 beanstalkd 队列中保留多个作业?

我正在向外部 API 发出请求,每个查询最多可以返回 10 个结果。它们限制了我每天可以提出的请求数量,因此每个请求获得的结果越多越好。

我在文档中找不到任何提及此功能的内容,因此我正在使用此解决方法。有谁知道实现这一目标的更好方法?还是比 beanstalkd 更适合这项工作的工具?

0 投票
1 回答
536 浏览

ubuntu - beanstalkd:未知标志:-d

我已经使用安装了 beanstalkd

安装了 beanstalkd 1.7 版

现在开始我正在使用命令的 beanstalkd 进程

我收到回复

0 投票
1 回答
372 浏览

ruby-on-rails - 使用 Backburner for Beanstalkd 时识别和区分工作程序

我正在尝试在我的应用程序中使用BackburnerBeanstalkd的 Ruby 客户端)来创建,比如说,50 个工作人员都在看同一个管道来处理即将到来的工作。问题是,这 50 名工作人员中的每一个在执行工作时都会进行一些繁重的文件操作等,并且他们每个人都需要对唯一命名的编号目录执行一些操作。例如,worker 7 需要使用名为 dir7 的目录。

最初我认为我可以创建一个ThreadsOnFork具有 50 个线程的工作线程,并且我可以从工作线程的 perform() 方法访问与每个线程关联的数字,但我还不能做到这一点。

如何使用 Backburner 处理这种情况?或者,如果 Backburner 无法使用其他 Ruby beanstalkd 客户端?我希望我的问题足够清楚。谢谢。

0 投票
2 回答
1663 浏览

php - Beanstalkd(通过 pheanstalk)允许重复的同时保留?

试图将 Pheanstalk 包装在我的 PHP 作业基类中。我正在测试具有延迟功能的保留和保留,我发现我可以从我的基类的第二个实例中保留一个作业,而无需第一个实例释放作业或 TTR 超时。这是出乎意料的,因为我认为这正是作业队列应该防止的事情。这是第一个 put 和第一个保留的 beanstalkd 命令以及时间戳。最后我还做了一个 stats-job 请求:

到目前为止,一切都很好。现在我从我的基类的第二个实例做另一个储备,然后是另一个统计作业请求。请注意,时间戳在同一秒内,与我设置的 300 秒 TTR 相去甚远。另请注意,在第二个 stats-job 打印输出中,该作业有 2 个保留,其中 0 个超时和 0 个释放。

有人对我可能做错了什么有任何想法吗?我需要做些什么来告诉队列我希望作业一次只能由一名工作人员访问吗?一旦我将工作从队列中取出,我就会在 pheanstalk 实例上进行“取消设置”,我相信这会终止与 beanstalkd 的会话。这是否会导致 beanstalkd 决定工人已经死亡并自动释放工作而没有超时?我不确定 beanstalkd 有多少依赖会话状态来确定工作状态。我假设我可以不受惩罚地打开和关闭会话,并且工作 ID 是 beanstalkd 唯一关心的将工作操作联系在一起的东西,但这对我来说可能是愚蠢的......这是我第一次涉足工作队列.

谢谢!

0 投票
1 回答
1160 浏览

message-queue - Beanstalkd 到 ZeroMQ:是否可以以相同的方式分配工作?

一个常见的 beanstalkd 工作流程是让许多工作人员在队列/管道上侦听作业,在处理该作业时锁定该作业,然后删除该作业,以便其他工作人员无法重新处理它。如果作业失败(例如,资源无法完成处理),该作业可以滑回队列中,让另一个工人接手该作业。

ZeroMQ 可以使用这种方法吗?例如,使用 pub/sub 模型可以多个订阅者接收同一个作业并同时处理它吗?push/pull 或 req/rep 会提供类似的设置吗?

0 投票
2 回答
3320 浏览

php - 如何处理有错误的 Beanstalkd 作业

当我的 Beanstalkd 作业出现错误时,例如"exception 'ErrorException' with message 'Notice: Undefined index: id in /var/www/mysite/app/libraries/lib.php line 248' in /var/www/mysite/app/libraries/lib.php:248,Beanstalkd 应该如何知道发生了错误并将其标记为失败以便可以再次重试?

0 投票
1 回答
699 浏览

architecture - 设计一个作业排队系统,其中每个用户在任何给定时间只能由工人处理一个作业

我有一个工作队列,有多个工人在看这个队列。(每个作业对应一个用户)。在任何给定时间,队列中的每个用户都可能有多个作业。

我不希望我的员工在任何给定时间为每个用户处理超过 1 个工作。仅当当时没有其他工作人员处理该用户时,该工作人员才应选择该用户的工作。如果用户的工作正在由工作人员处理,我还希望下一个用户工作在完成后立即被选中。

我想让我的工人用户不可知(即,任何工人都应该能够处理任何用户的工作)。这将帮助我水平扩展。

我应该怎么做?我想为每个用户创建单独的队列,但工作人员将不得不观看大量队列并可能浪费资源。我现在使用 beanstalkd 作为队列服务器。

任何帮助表示赞赏。

0 投票
0 回答
657 浏览

service - 重新加载 beanstalkd 配置而不重新启动

有没有办法在不重新启动 beanstalkd 的情况下重新加载 beanstalkd 配置?

当我使用sudo service beanstalkd restartorsudo service beanstalkd force-reload时,它会清除所有队列。

(是的,将来我以持久模式运行它)

0 投票
0 回答
509 浏览

load-balancing - 不成比例的工作人员之间的负载平衡作业队列

我正在开发一种自动管理作业队列的工具(在本例中为 Beanstalkd)。目前,您必须手动设置可用工作人员的数量才能将作业从队列中拉出,但这不允许作业高峰,否则会在作业时间较短时浪费资源。

我有一个在作业队列服务器和工作人员上运行的客户端/服务器设置。客户端连接到服务器并报告可用资源(CPU/内存)以及它可以运行的作业类型。然后,服务器监控队列并向连接的客户端指示每秒运行多少个工作人员来处理该队列。目前有大约一百种不同的工作器类型,它们都使用非常不同数量的 CPU/内存,工作器服务器本身具有不同的性能水平。

我正在寻找基于作业队列长度和每个工作人员的资源需求来最有效地平衡工作负载的技术 - 例如,一些工作人员使用 100% 的核心持续 5 秒,而其他工作人员需要几微秒才能完成。此外,某些工作的优先级高于其他工作。

0 投票
1 回答
386 浏览

php - Beanstalkd 职位的顺序

我有一份只有一名工人的豆茎工作。

第一个问题:作业的处理顺序是否与放入试管中的顺序相同?

第二:如果我将使用多个工人,我该如何管理两个工作之间的依赖关系?假设job1和job2可以同时处理,但是job3必须在job1之后处理。