FlaskベースのWebアプリケーションでCeleryを使用して、サーバー側で非同期タスクを実行し始めました。HTTPリクエストでCeleryタスクIDを使用するのは安全ですか?
いくつかのリソースは、ユーザ/クライアント先の「/アクション」サブリソースを取得するには、例えば、アクションを指定するJSON-体を含むPOSTを送信することができます:
curl -H "Content-Type: application/json" -X POST \
-d '{"doPostprocessing": { "update": true}}}' \
"http://localhost:5000/api/results/123/action"
を彼らはして202 ACCEPTED
応答を得ますヘッダ
Location: http://localhost:5000/api/results/123/action/8c742418-4ade-474f-8c54-55deed09b9e5
彼らは最終的な結果を得る(またはタスクがまだ実行されている場合は、別の202 ACCEPTED
を得る)ためにポーリングすることができます。
私がアクションのために返すIDはcelery.result.AsyncResult.id
です。
これは安全な処理ですか?セロリのタスクIDを直接パブリックに渡すときに私はどのような問題を作りますか?
そうでない場合は、お勧めの方法はありますか?好ましくは、タスクの状態を明示的に追跡することを回避するもの。