我想使用celery.signature()。set()方法在链中调用我的任务时更改其配置。
这是我的任务看起来像
class MyBaseTask(Task)
myconfig = None
@app.task(base=MyBaseTask)
def mytask():
print mytask.myconfig
以下是我希望如何调用链
chain(mytask.s(message).set(myconfig=config1), mytask.s().set(myconfig=config2))
这可能吗?其他与任务相关的配置可以像这样设置,例如队列。如何在抽象基类中公开此行为?
答案 0 :(得分:0)
不,我不相信这是可能的,因为芹菜目前保留了一个白名单值,可以作为发送给代理的消息的一部分进行传输。通常,如果要动态更改动态内容,只需将动态内容作为输入参数传递给任务。
def mytask(myconfig):
print mytask.myconfig