首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Beanstalkd使用后置燃烧器时工人之间的识别和区别

在Beanstalkd使用后置燃烧器时工人之间的识别和区别
EN

Stack Overflow用户
提问于 2013-02-05 03:56:41
回答 1查看 392关注 0票数 0

我正试图在我的应用程序中使用后燃器 (贝斯塔尔德的Ruby )来创建,比方说,50名工人,他们都在监视着同一根管子来找工作。问题是,这50名工作人员在执行一项工作时,都会执行一些繁重的文件操作,而他们每个人都需要在一个唯一命名的编号目录上执行一些操作。例如,worker 7需要使用名为dir7.的目录。

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

我如何使用搁置处理这种情况?或者,如果不能搁置,使用其他客户端?我希望我能把我的问题弄清楚。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 16:31:53

我解决了这个问题,简单的方法是:编写一个shell脚本,通过环境变量将指定的编号传递给它,从而启动一个工作人员。下面是一个片段,如果有人在寻找类似的解决方案:

代码语言:javascript
复制
#!/bin/bash
for i in $(seq 1 "$1"); do
    env WORKER_NUM=$i rake QUEUES=queue1 backburner:work > logs/backburner.log 2>&1 &
done

rake任务可以通过将require 'backburner/tasks'添加到Rakefile来使用,如搁置的文件中所解释的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14699955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档