Celery 芹菜单任务持久数据

Celery 芹菜单任务持久数据,celery,celery-task,celeryd,Celery,Celery Task,Celeryd,让我们假设一个任务足以让一台机器在几分钟内保持非常繁忙的状态 我想得到任务的结果,然后根据结果,让工人再次执行相同的任务 我找不到答案的问题是:我可以将数据保存在工作机器的内存中,以便在下一个任务中使用它吗?可以。文档()有点模糊,我不确定这是否是最好的方法,但您可以这样做: 这是您想要做的,但不起作用: #这行不通 a=0 @芹菜 def mytask(x): a+=x 归还 这是如何使其工作的: 来自芹菜导入任务,注册表 @芹菜 类MyTask(任务): 定义初始化(自): self.a=

让我们假设一个任务足以让一台机器在几分钟内保持非常繁忙的状态

我想得到任务的结果,然后根据结果,让工人再次执行相同的任务


我找不到答案的问题是:我可以将数据保存在工作机器的内存中,以便在下一个任务中使用它吗?

可以。文档()有点模糊,我不确定这是否是最好的方法,但您可以这样做:

这是您想要做的,但不起作用:

#这行不通
a=0
@芹菜
def mytask(x):
a+=x
归还
这是如何使其工作的:

来自芹菜导入任务,注册表
@芹菜
类MyTask(任务):
定义初始化(自):
self.a=0
def运行(自我,x):
self.a+=x
回归自我
mytask=registry.tasks[mytask.name]
根据文件:

任务不是针对每个请求进行实例化,而是作为全局实例在任务注册表中注册。这意味着每个进程只调用一次
\uuuuu init\uuuu
构造函数,并且任务类在语义上更接近于参与者。。。如果你有任务。。。您将每个请求路由到同一进程,然后它将在请求之间保持状态。”

我在这方面取得了成功,但我不知道是否有更好的方法