如何通过 http 在 celery 任务调用上设置 http_headers

How to set http_headers on celery tasks calls via http

我想使用来自 celery 的 class HttpDispatch 通过 HTTP 进行任务调用,但我需要设置授权 header。我该怎么做?

from celery.task.http import HttpDispatch
request = HttpDispatch(
     url='http://example.com/multiply',
     method='GET', {10})
request.dispatch()

您需要继承 HttpDispatch 并重新实现 http_headers 属性 方法。这个属性里面用的是HttpDispatch.

class CustomHttpDispatch(HttpDispatch):

@property
def http_headers(self):
    headers = {
        'User-Agent': self.user_agent,
        'Authorization': 'XXX'}

    return headers