3

我正在尝试在 Django 中实现某种后台任务队列,因为 Celery 太大太复杂,然后我突然想到,已经有一个信号叫做request_finished

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

但是为什么 Django 没有一个叫做 的信号response_finished呢?

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

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

TIA

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 不会关心响应迭代器停止后会发生什么。

于 2012-08-08T08:23:52.557 回答