【发布时间】:2019-09-29 22:46:39
【问题描述】:
我是烧瓶(芹菜)异步任务的新手。我的目标是实现一个异步任务队列。
我有一个调用任务的 Flask restful api。 resource.py 看起来像这样:
from flask_restful import Resource, reqparse
from app.tasks import get_data
class Data(Resource):
def get(self, isin):
output = get_data.apply_async(args=[isin])
output_done = output.get()
return output_done
调用task.py中的任务:
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
@app.task(name='get_data')
def get_data(isin):
df = pd.read_sql_table("data", engine)
if isin in df["data"].tolist():
subset = df[df["data"] == isin].iloc[0]
output = some_calculation
return output
return {'message': 'data not found'}, 404
当我运行它时,由于apply_async,if语句总是被执行。所以我的问题是如何在异步任务中正确实现if子句?
感谢您的帮助!
【问题讨论】:
标签: python asynchronous flask celery