2012-07-11 36 views
2

我想實現某種Django的後臺任務隊列,因爲芹菜過於龐大&複雜,那麼它發生,我認爲,已經有一個名爲request_finished爲什麼Django中沒有response_finished信號?

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

但爲什麼Django的信號沒有信號叫response_finished

Django可能是同步的,但我可以做一些事後響應數據處理和保存任務,它只能採取更多的步驟。

在Django中是否有一種方法可以做一些後處理工作?

TIA

+1

數據處理是否依賴於響應的內容?這似乎不太可能。爲什麼不從視圖內部啓動線程?該任務仍然是異步的,並且不會阻止響應。這個答案可能更有幫助 - http://stackoverflow.com/a/11904222/420386 – 2012-09-18 10:54:02

回答

2

可以write your own middleware(特別是使用process_response)如果您需要的響應已經組裝之後執行的任務。在響應「完成」之後有一個信號處理程序就沒有意義,因爲該階段,您已經執行了您的視圖並呈現了您的模板。

+0

重點是我可以使用在執行視圖的上下文中的響應後做一些數據處理。例如。一些遠程數據庫可能會很慢,執行期間會花費額外的時間來響應響應。 – est 2012-07-11 04:21:35