我在我的任务中使用装饰器来管理我的任务。我正在使用MongoDB作为芹菜后端。
@app.task(bind=True)
@my_customize_decorator
def some_task(self):
#Do something
return
我的装饰器和任务,它们都有MongoDB连接。当我向工人发送some_task.delay()
时,它会给我ConfigurationError: Unknown option auto_start_request
.
我认为芹菜将auto_start_request选项发送给pymongo,而pymongo无法解决这个问题。但我不知道如何覆盖该配置。
它是由芹菜后端选项引起的。不是来自任务或装饰器。芹菜mongodb后端默认选项是你可以在这里看到的
self.options.setdefault('max_pool_size', self.max_pool_size)`
self.options.setdefault('auto_start_request', False)`
这些行是导致配置错误的原因。从中删除这些行后 path/to/dist-pack/celery/backends/mongodb.py
问题已解决。