如果在一段时间内没有收到彼此的请求,则更改变量
Change variable if request are not received within some time from each other
我有一个 ajax 函数,它以 25 秒的间隔向 class 发送数据,如下所示
class StateInfo:
flag = None
def post(self):
data = request.get_data()
info = json.loads(data)
现在我想要实现的是在 30 秒内没有 post 请求时将标志变量设置为 0。我知道有 .elapsed 但它 returns 请求和响应之间的时间差
正如我在评论中所说,我天真的做法是为最后一个 post 请求添加时间戳。而不是简单地检查时间戳是否早于 30 秒。
from multiprocessing import Process
from datetime import timedelta, datetime
class StateInfo:
flag = None
ts = None
def post(self):
ts = datetime.now()
data = request.get_data()
info = json.loads(data)
def check_state(self):
if ts < datetime.now() + timedelta(seconds = -30):
flag = 0
if __name__ == "__main__":
state_info = StateInfo()
proc = Process(target=state_info.check_state())
proc.start()
请注意,我添加了多处理,因为您可能有第二个进程,它需要同时 运行。虽然,您可能需要重复该过程。
我希望这能给你一个好主意,你如何才能做到这一点。另请查看评论中@match 的建议。
我有一个 ajax 函数,它以 25 秒的间隔向 class 发送数据,如下所示
class StateInfo:
flag = None
def post(self):
data = request.get_data()
info = json.loads(data)
现在我想要实现的是在 30 秒内没有 post 请求时将标志变量设置为 0。我知道有 .elapsed 但它 returns 请求和响应之间的时间差
正如我在评论中所说,我天真的做法是为最后一个 post 请求添加时间戳。而不是简单地检查时间戳是否早于 30 秒。
from multiprocessing import Process
from datetime import timedelta, datetime
class StateInfo:
flag = None
ts = None
def post(self):
ts = datetime.now()
data = request.get_data()
info = json.loads(data)
def check_state(self):
if ts < datetime.now() + timedelta(seconds = -30):
flag = 0
if __name__ == "__main__":
state_info = StateInfo()
proc = Process(target=state_info.check_state())
proc.start()
请注意,我添加了多处理,因为您可能有第二个进程,它需要同时 运行。虽然,您可能需要重复该过程。
我希望这能给你一个好主意,你如何才能做到这一点。另请查看评论中@match 的建议。