我有一個Django應用程序,它在後臺運行計算。計算需要5秒到2分鐘之間的任何時間。如何將通知推送到瀏覽器窗口?
我在芹菜上運行這些。它正在更新數據庫中的表格。
我正在做一個頁面上的DIV autorefesh每隔2秒,這本質上是一個SQL查詢。這意味着一些不必要的SQL查詢,直到顯示一些數據。不用說這是增加數據庫負載的問題。
只有在更新表時纔有觸發刷新的方法嗎?
我有一個Django應用程序,它在後臺運行計算。計算需要5秒到2分鐘之間的任何時間。如何將通知推送到瀏覽器窗口?
我在芹菜上運行這些。它正在更新數據庫中的表格。
我正在做一個頁面上的DIV autorefesh每隔2秒,這本質上是一個SQL查詢。這意味着一些不必要的SQL查詢,直到顯示一些數據。不用說這是增加數據庫負載的問題。
只有在更新表時纔有觸發刷新的方法嗎?
如果後臺任務被分配給特定的用戶,你可以使用會話數據以指示任務已完成。在你的Ajax功能,你可以看看這個會話數據,並且只看看數據庫時,你有跡象表明,這是完成:
https://docs.djangoproject.com/en/1.8/topics/http/sessions/
另一種解決方案是使用系統文件,用於同步。例如:
這個文件也可能訪問作爲一個網址(爲避免Ajax請求)
Is'nt有像流星JS如何做的方式,其中一個更新到數據庫顯示在客戶端窗口嗎? – ramdaz