Почему в Django нет сигнала response_finished?

Я пытаюсь реализовать какую-то очередь фоновых задач в Django, потому что Celery слишком большой и сложный, потом мне пришло в голову, что уже есть сигнал под названием request_finished

https://docs.djangoproject.com/en/dev/ref/signals/

Но почему у Джанго нет сигнала под названием response_finished?

Django может быть синхронным, но я могу выполнить некоторые задачи обработки и сохранения данных после ответа, для этого требуется всего несколько шагов.

Возможно ли взломать способ сделать некоторую работу после ответа в Django?

ТИА

2 ответа

Решение

Так как никто не отвечает на этот вопрос, у меня есть некоторые выводы

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

Это в основном дизайн поведения wsgi. Wsgi не волнует, что произойдет после того, как ответный итератор остановится.

Вы можете написать свое собственное промежуточное программное обеспечение (в частности, используя process_response) если вам нужно выполнить задачи после того, как ответ был собран. Не будет никакого смысла иметь обработчик сигнала после того, как ответ "закончен", так как на этом этапе вы выполнили свое представление и визуализировали свой шаблон.

Другие вопросы по тегам