为什么Django中没有response_finished信号?

时间:2012-07-11 00:59:03

标签: python django signals deferred-execution

我正在尝试在Django中实现某种后台任务队列,因为Celery太庞大了。复杂,然后它发生在我身上,已经有一个叫request_finished

的信号

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

但为什么Django没有名为response_finished的信号?

Django可能是同步的,但我可以做一些事后响应数据处理和保存任务,它只需要更多的步骤。

是否可以在Django中进行一些后期响应工作?

TIA

2 个答案:

答案 0 :(得分:2)

如果您需要在汇总回复后执行任务,则可以write your own middleware(特别是使用process_response)。在响应“完成”之后,有一个信号处理程序是没有意义的,你已经执行了你的视图并渲染了你的模板。

答案 1 :(得分:1)

因为没有人回答这个问题,我自己得出了一些结论

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

它基本上是一种wsgi设计行为。 Wsgi不关心在响应迭代器停止后会发生什么。