Python 返回数据的芹菜任务:做得不对还是做得对?

Python 返回数据的芹菜任务:做得不对还是做得对?,python,celery,celeryd,celery-task,Python,Celery,Celeryd,Celery Task,我在学用芹菜。我有一个函数(在一个Flask应用程序中),它是根据我到目前为止所学的伪代码编写的: def do_a_task_route(): try: result = a_celery_task.apply_async(args=[request_data]) returned = a_celery_task.AsyncResult(result.task_id).get(timeout = 2.0) return jsonify(r

我在学用芹菜。我有一个函数(在一个Flask应用程序中),它是根据我到目前为止所学的伪代码编写的:

def do_a_task_route():
    try:
        result = a_celery_task.apply_async(args=[request_data])
        returned = a_celery_task.AsyncResult(result.task_id).get(timeout = 2.0)
        return jsonify(response = returned['response'])
    except:
        return jsonify(response = "some big problem")
我不是百分之百肯定这是正确的和最好的,但对我现在的工作。似乎结果/返回行可以是一个“returned=run_task”,其中run task执行任务并等待

我在考虑重构方向——a)将这两行(result/returned)绑定到运行任务并调用结果的函数中,或者b)将“AsyncResult”放入任务本身并返回


从以前做过芹菜的人那里得到的芹菜是什么?或者只是一些以前对芹菜进行过微调的人的反馈。

只有当您打算在web应用程序的其他地方重用此代码时,重构此代码才有意义。如果只从这里调用这些行,则无需将它们放入新函数中。但是如果您打算重用代码,那么最好有一个函数来启动该任务并返回响应。我真的不认为这是芹菜的问题,因为这些重构原则适用于任何代码。

是和否。我正在征求编写芹菜任务的其他人的反馈,并讨论如何重构提供的伪代码