我正在使用celery在Hadoop上运行长时间运行的任务。每个任务在Hadoop上执行一个Pig脚本,该脚本运行约30分钟 - 2个小时。使用不同的值初始化不同的芹菜工人
我目前的Hadoop设置有4个队列a,b,c和默认值。所有任务当前正由单个工作人员执行,该工作人员将工作提交给单个队列。
我想添加另外3个将作业提交到其他队列的工作人员,每个队列一个工人。
问题是队列目前是硬编码的,我希望为每个工人做这个变量。
我搜索了很多,但我无法找到一种方法来传递每个芹菜工作者不同的队列值,并在我的任务中访问它。
我开始像我这样的芹菜工人。
celery -A app.celery worker
我希望通过一些额外的参数在命令行本身和访问它在我的任务,但芹菜抱怨说,它不理解我的自定义参数。
我打算通过设置--concurrency=3
参数来运行同一主机上的所有工人。有没有解决这个问题的方法?
谢谢!
编辑
目前的情况是这样的。每次我试图说tasks.print_something.delay()
执行任务print_something只打印队列C.
@celery.task()
def print_something():
print "C"
我需要有工人打印基于我通过什么样的价值给他们,而他们开始一个变量信。
@celery.task()
def print_something():
print "<Variable Value Per Worker Here>"
是否有可能分享您已实施的代码段? –