我只希望每个进程初始化一次任务,但是__init__
构造函数被称为每个请求。
我阅读了celery(https://docs.celeryproject.org/en/latest/userguide/tasks.html#instantiation)用户指南,上面写着:
不是为每个请求实例化一个任务,而是在 任务注册表作为全局实例。这意味着__init__ 构造函数每个过程只会调用一次,并且该任务 类在语义上更接近演员。
我的task.py
class AuthTask(Task):
def __init__(self):
self._user = {'bruce':'123456'}
print('in init')
def run(self, username, password):
try:
return self._user[username] == password
except KeyError:
return False
AuthTask = app.register_task(AuthTask())
我的trigger.py
result = AuthTask.delay('bruce', '123456')
我希望__init__
构造函数只被调用一次,但是每个请求都被调用。每次我运行trigger.py