我正在尝试以下列方式使用 Django。
我有一个在后端运行的命令行实用程序,我们称它为 foo
。
我希望 foo
在至少一个人在 django 页面 foo.com/kungfoo
上时运行。
当他们离开网页时,我还需要终止脚本。这可以通过 Javascript 实现。
但是,如何确定是否有多个人同时查看该页面。理想情况下,如果页面上有其他人,我不希望 foo
被杀死。
我能想到的唯一方法是让 Javascript 每隔一分钟左右向 Django 推送一个 I'm still here
状态。然后每分钟通过 celery 运行一个 Python 脚本,并检查 Django 是否有一个 I'm still here
。如果 foo
正在运行,则终止 foo
。
有更好的方法吗?
我知道这个问题很宽泛,所以我会更具体一些。 Django 有没有办法计算浏览网页的人数并在该人数为 0 时运行脚本。
最佳答案
你可以使用 django-channels用ReconnectingWebSocket ,这样您就可以知道用户何时离开页面,或者 - 对您的情况更有帮助 - 当页面上没有用户时。
关于django - 使用 Django 建立有状态连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42148847/