3

Celery は巨大で複雑すぎるため、Django にある種のバックグラウンド タスク キューを実装しようとしています。request_finished

https://docs.djangoproject.com/en/dev/ref/signals/#django.core.signals.request_finished

しかし、なぜ Django には というシグナルがないのresponse_finishedでしょうか?

Django は同期的かもしれませんが、応答後のデータ処理とタスクの保存を行うことができます。あと数ステップしかかかりません。

Django で応答後の作業を行う方法としてハッキングは可能ですか?

ティア

4

2 に答える 2

3

応答が組み立てられた後にタスクを実行する必要がある場合は、独自のミドルウェアを (具体的には を使用して) 作成できます。process_responseその段階までにビューを実行してテンプレートをレンダリングしたため、応答が「終了」した後にシグナルハンドラーを用意しても意味がありません。

于 2012-07-11T01:10:22.193 に答える
1

誰もこれに答えないので、私はいくつかの結論を自分で持っています

https://groups.google.com/d/topic/python-web-sig/OEahWtsPwq4/discussion

これは基本的に wsgi 設計の動作です。wsgi は、respons イテレータが停止した後に何が起こるかを気にしません。

于 2012-08-08T08:23:52.557 に答える