1

セロリの使い方を学んでいます。これまでに学んだことから、(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")

私はこれが正しくて最良であると100%確信しているわけではありませんが、今はうまくいきます。結果/返される行は、実行タスクがタスクを実行して待機する1つの「returned=run_task」である可能性があるようです。

私は方向のリファクタリングを考えていました-a)タスクを実行して結果を呼び出す関数にこれらの2行(結果/戻り値)をバンドルするか、b)「AsyncResult」をタスク自体に入れてその戻り値を取得します。

以前にこれをしたことがある人からのセロリの方法は何ですか?または、以前にセロリを微調整したことがある人からのフィードバックです。

4

1 に答える 1

0

このコードのリファクタリングは、Web アプリケーションの別の場所で再利用する場合にのみ意味があります。ここからのみ呼び出される場合は、これらの数行を新しい関数に入れる必要はありません。ただし、コードを再利用する場合は、そのタスクを開始して応答を返す関数を用意することをお勧めします。これらのリファクタリングの原則はどのコードにも当てはまるため、これがセロリに関する質問だとは思いません。

于 2012-06-07T18:27:26.223 に答える