2017-02-09 30 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