Python 如何在Django通道中创建服务器端计时器/倒计时?

Python 如何在Django通道中创建服务器端计时器/倒计时?,python,django,websocket,python-asyncio,Python,Django,Websocket,Python Asyncio,假设我正在使用Django频道(Websockets)构建一个酒吧问答应用程序。共有10个问题,每个问题都有一个时间限制和一个额外添加5秒的按钮 我知道有可能在客户端安装计时器,但我需要在服务器端安装计时器,以避免篡改Js造成问题,因为有很多玩家参与其中 如何在Django服务器端创建计时器?一旦计时器启动,它将需要调用一个函数来获取下一个问题。我知道如何使用while循环: While True: if datetime.now() == question_end_ti

假设我正在使用Django频道(Websockets)构建一个酒吧问答应用程序。共有10个问题,每个问题都有一个时间限制和一个额外添加5秒的按钮

我知道有可能在客户端安装计时器,但我需要在服务器端安装计时器,以避免篡改Js造成问题,因为有很多玩家参与其中

如何在Django服务器端创建计时器?一旦计时器启动,它将需要调用一个函数来获取下一个问题。我知道如何使用while循环:

    While True:
        if datetime.now() == question_end_time:
             fetch_next_question()
但从我所读到的,这似乎不是一个好主意,因为阻止线程。有没有其他方法可以每隔一秒钟检查一次,如果问题的时间到了,调用函数


提前谢谢。

换一种方式,不是每秒钟检查一次,而是在计时器结束时设置发生的事情

使用javascript创建计时器,当计时器结束时,javascript将使用ajax调用django url


这样你就不会每秒钟都在监视了。

换个角度看,你不是每秒钟检查一次,而是在计时器结束时设置一些事情

使用javascript创建计时器,当计时器结束时,javascript将使用ajax调用django url


这样一来,您就不会每时每刻都在监视了。

谢谢您的回复。但是,出于几个原因,我不想将客户端用于计数器,而是希望以某种方式使用后端(芹菜可能是一个很好的选择,即使对于重复的1秒任务?),感谢您的回复。然而,出于几个原因,我不想在柜台上使用客户端,而是希望以某种方式使用后端(芹菜可能是一个不错的选择,即使对于重复的1秒任务也是如此?)