尝试在不同时间使用每个线程的延迟发送多个请求:
def snipe(delay):
print("Exact drop thread opened..")
while True:
if int(round(time.time() * 1000)) == int(droptime - delay):
send = requests.post("www.example.com")
print(f"{time.strftime('[%H:%M:%S]')}Exact: {send}")
break
droptime变量在UNIX时间中,例如:1595359842794
出于某种原因,只有一半的线程实际发送请求,而其他线程出于某种原因不触发if语句
是否有人能提出一种更好的方法,在特定时间发送请求,延迟可调。
正如@kindall所说,在
while
循环中“什么都不做”是一种糟糕的做法,它会一直消耗CPU。在这种情况下,使用time.sleep
通常更好(尽管有更好、更复杂的选项,如async approach,可以产生优雅的解决方案)。但是,在您的情况下,我不确定您到底想要实现什么,但是如果您尝试在不相互阻塞的情况下发送请求,那么以下方法应该可以工作:基本上,您不需要控制这些请求的阻塞/取消阻塞性质,因为这是一个I/O绑定的工作(不需要太多cpu,这是GIL的一个约束,但对于这种规模的任务肯定不需要),将由操作系统处理,并且在大多数情况下是以最佳方式处理的
如果您对时间延迟/时间戳(在这里似乎不合理)有具体的了解,那么您可以看看this
相关问题 更多 >
编程相关推荐