Python 如何将长时间运行的芹菜作业的结果存储在JSON文件中,而不阻塞Flask上的REST端点?
我创建了一个长时间运行的芹菜工人,负责处理网络抓取和填充字典对象。我创建了多个异步运行的作业,所有作业都填充同一个dict对象。 我需要一种方法将worker中的结果转储到JSON文件中。它可以定期执行,也可以在作业完成后执行,但它不应该阻止我的API响应Python 如何将长时间运行的芹菜作业的结果存储在JSON文件中,而不阻塞Flask上的REST端点?,python,json,flask,celery,Python,Json,Flask,Celery,我创建了一个长时间运行的芹菜工人,负责处理网络抓取和填充字典对象。我创建了多个异步运行的作业,所有作业都填充同一个dict对象。 我需要一种方法将worker中的结果转储到JSON文件中。它可以定期执行,也可以在作业完成后执行,但它不应该阻止我的API响应 @celery.task(name="tasks.workertask") def worker(d, x): """ Do some long task on x and populate the dictionary d
@celery.task(name="tasks.workertask")
def worker(d, x):
"""
Do some long task on x and populate the dictionary d
"""
def collect(x_list)
d = dict()
for x in x_list:
worker.delay(d,x)
return d.copy()
@application.route('/api')
def api():
#Store x_list
x_list = [...]
d = collect(x_list)
with open('result.json','w') as fp:
json.dump(d,fp)
return "Dumping into JSON"
转储到result.json中为空,因为任务正在后台运行。我不希望此任务阻塞我的API响应,因为此任务非常长(超过12小时)