4

私はDjangoとCelery+RabbitMQを使用して、ユーザーがアップロードしているビデオのビデオ変換タスクを作成しています。これで、セロリにクエリを実行してステータスを取得する方法がわかりました。私の質問は、各タスクに関連付けられたtask_idをどこに保存するかですが、モデルまたはdjangoのキャッシュに保存する必要がありますか?

過去に同様の質問があったことは知っています。たとえば、このスタックオーバーフローの質問ですが、決定的な答えはまだありません。これに対する答えは開発者の好みによって異なることは知っていますが、誰かがさまざまなアプローチの長所/短所について教育できれば、それは素晴らしいことです。

繰り返しになりますが、task_idを使用して、フロントエンドからAJAXクエリを頻繁に実行し、ビデオ変換が完了したかどうかを確認します。

4

2 に答える 2

8

django_celeryがインストールされている場合は、パッケージに含まれている、task_statusまたはパッケージに含まれているビューをクエリできます。これらはJSONディクショナリを返すため、JavaScriptで処理できます。is_task_successfuldjcelery.views

于 2011-02-16T20:54:43.410 に答える
4

リンクされた質問に関する私の回答を参照してください:セロリタスクがまだ処理されているかどうかをテストします

したがって、celery_taskフィールドを設定した後、必要な形式でタスクステータスを返すajaxビューを簡単に定義できます。

于 2011-01-31T03:34:31.017 に答える