我有一个要监视的套接字连接,它消除了突发性高的市场数据。
while 1:
socket.recv()
print('data recevied')
while循环仅应执行打印,每60秒执行一次。
答案 0 :(得分:1)
尝试一下:
from datetime import datetime
last = datetime.now()
while 1:
socket.recv()
if (datetime.now() - last).seconds >= 60:
print("data received")
last = datetime.now()
答案 1 :(得分:0)
您想要在此处进行某种异步处理:一方面,您想要连续接收数据,另一方面,您希望每60秒显示一条消息。
所以线程化是我的第一个想法:前台接收消息,而后台接收消息。
.bat
您没有在邮件中显示任何有趣的数据,因此我也没有。但是,由于所有全局变量都是共享的,因此显示例如自上一条消息以来收到的字节数将很简单
或者,您可以使用def recv_loop(socket, end_cond):
while True:
socket.recv(1024)
# assuming something ends above loop
end_cond[0] = True
end = False
recv_thr = threading.Thread(target = recv_loop, args = (socket,[end]), daemon = True)
recv_thr.start()
while not end:
time.sleep(60)
print('data received')
,因为它会使您超时。因此,您可以更改线程以进行更复杂的超时处理。
select.select