Почему в 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
) если вам нужно выполнить задачи после того, как ответ был собран. Не будет никакого смысла иметь обработчик сигнала после того, как ответ "закончен", так как на этом этапе вы выполнили свое представление и визуализировали свой шаблон.