Python 如何将长时间运行的芹菜作业的结果存储在JSON文件中,而不阻塞Flask上的REST端点?

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

我创建了一个长时间运行的芹菜工人,负责处理网络抓取和填充字典对象。我创建了多个异步运行的作业,所有作业都填充同一个dict对象。 我需要一种方法将worker中的结果转储到JSON文件中。它可以定期执行,也可以在作业完成后执行,但它不应该阻止我的API响应

@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小时)