如果标题状态不是200,我必须卷曲一个网站并显示一条消息。逻辑工作正常,但我在调用该方法时遇到了麻烦。
threading.Time应该每隔20秒调用 ONCE 方法,但很明显,它会多次调用它。有人可以告诉我如何让它每20秒调用一次方法?
import requests
import threading
def check_status(url):
while True:
status = requests.get(url)
if status.status_code != 200:
print('faulty')
def main():
threading.Timer(2.0, check_status, args=('https://www.google.com',)).start()
if __name__ == "__main__":
main()
答案 0 :(得分:1)
完成旧计时后,只需创建一个新计时器。
import requests
import threading
def check_status(url):
status = requests.get(url)
if status.status_code != 200:
print('faulty')
threading.Timer(2.0, check_status, args=('https://www.google.com',)).start()
def main():
threading.Timer(2.0, check_status, args=('https://www.google.com',)).start()
if __name__ == "__main__":
main()
答案 1 :(得分:0)
每20秒,您创建一个进入无限循环的线程,该循环检查HTTP状态。即使你没有使用threading.Time,你仍然会得到多个打印件。删除while循环,它将按预期工作。
更新
我的错误,看文档:{{3}}
经过一段时间后, Time
将执行该功能。然后它会退出。你需要做的是,在while循环中有time.sleep
,并在你的主要内部调用该函数。