我想使用 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))
这可能吗?其他与任务相关的配置可以像这样设置,例如队列。如何在抽象基类中公开此行为?
不,我不相信这是不可能的,因为芹菜目前保留了一个值的白名单,这些值可以作为发送到代理的消息的一部分进行传输。通常,如果要动态更改动态内容,则只需将动态内容作为输入参数传递给任务。
def mytask(myconfig):
print mytask.myconfig