2014-09-25 83 views
1

我有一個任務需要大約10-20分鐘才能執行。用戶點擊一個按鈕來執行此操作。是否有可能從這個請求返回並繼續在後臺運行此任務,並在完成後發送電子郵件或其他內容。Django從請求返回並在後臺運行任務

我知道我可以設置隊列和cron作業,但它看起來太多了,因爲只有一個用戶會使用此功能。

此外,請求超時或中斷的機會有多大?也許這是一個選項只是不關閉選項卡,並等待?

+0

看起來像[芹菜](http://celery.readthedocs.org/)這樣的任務隊列的良好用例, – 2014-09-25 18:28:12

回答

1

非常可能和celery很好的候選人。

你也可能想看看經紀人的redis

從您的觀點來看,您可以添加一個任務,並立即異步執行它,然後返回一個Http響應,其中包含「現在正在發生」消息或任何您喜歡的消息。

如果您希望在保存對象時執行某些操作,您也可以使用post_savepre_save之類的信號來觸發任務。

更新:對不起,重新閱讀問題,您已經確認使用隊列。如果運行10-20分鐘,它肯定會超時。除非你增加超時時間,或者定期回覆說我還在這裏。就像一個JSON響應。但實際上,這聽起來最適合由任務隊列處理。