2013-07-19 17 views
2

芹菜是否为每项任务分岔? 可以说我有这样的事情:请问(django-)芹菜叉本身?

obj = object() 

@celery.task 
def print_id(): 
    print id(obj) 

#another server 
print_id.delay() 
print_id.delay() 
print_id.delay() 

当调用任务数次(无需重新启动芹菜),是id始终是相同的?

回答

1

这取决于。请参阅concurency docs

如果您至少设置了两名multiprocessing工人,id将不会保持不变。即使您使用一个节点,并在X任务执行(芹菜工作人员的选项)后重新启动它,id也不会保持不变。

基本上你不应该依赖于你的代码。通过芹菜运行任务的目的是分发它们。

请问为什么会出现这样的问题?你有需要的用例吗?

+0

谢谢! 我只是想了解我们的系统是如何工作的。 我们有一个全局对象,持有连接到外部系统的连接器。如果该连接器不存在,则创建该连接器。 但是从你所说的话来看,连接器并不总是一样的。所以我们将有多个连接器。 – kev