2017-02-09 62 views
2

我想以下面的方式使用Django。使用Django進行有狀態連接

我有一個在後端運行的命令行實用程序,我們稱之爲foo

我希望foo在至少有一個人在django頁面foo.com/kungfoo上運行。

我還需要殺死腳本,當他們離開網頁時。這可以通過Javascript。

但是,如何確定多個人是否正在同時查看網頁。理想情況下,如果其他人在頁面上,我不希望foo被殺害。


我能想到的要做到這一點的唯一方法是有推動的Javascript的I'm still here狀態Django的每分鐘左右。然後每分鐘通過芹菜運行一個Python腳本,並檢查Django是否有I'm still here。如果foo正在運行,則會終止foo

有沒有更好的方法來做到這一點?


我知道這個問題很廣泛,所以我會讓它更具體。有沒有辦法Django的計數的人們瀏覽網頁的數量和運行腳本如果該數爲0。

回答

1

你可以使用django-channelsReconnectingWebSocket,你知道當用戶離開網頁的方式,或 - 在您的情況下更有用 - 當網頁上沒有用戶時。

+0

是的,我懷疑那是怎麼做到的。儘量避免通道帶來的處理過剩。雖然我想芹菜擊敗Django加起來也會造成相當高的流程費用 – cjds