我做了类似的事情
@app.task
def some_task()
logger.info(app.current_task.request.id)
some_func()
def some_func()
logger.info(app.current_task.request.id)
所以我在some_task内收到普通ID,但在some_func内等于None。如何获取真实的任务ID?
答案 0 :(得分:1)
您可以绑定任务并传递请求,而不必依赖全局。
@app.task(bind=True)
def some_task(self)
logger.info(self.request.id)
some_func(self.request)
def some_func(celery_request=None)
# celery_request is optional assuming you're using it elsewhere.
if celery_request:
logger.info(celery_request.id)