Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 同时与其他人循环_Python_Python 2.7_While Loop_Python Requests - Fatal编程技术网

Python 同时与其他人循环

Python 同时与其他人循环,python,python-2.7,while-loop,python-requests,Python,Python 2.7,While Loop,Python Requests,我正在使用一个while循环,我试图运行它5分钟,并检查它是否得到http响应代码200。问题是,如果它没有得到200,它将继续运行,但它不会在网站应该启动并运行时转到else r = requests.head("http://www.testing.co.uk") while r.status_code != 200: print "Response not == to 200." time.sleep(30) else: print "Response is 200

我正在使用一个while循环,我试图运行它5分钟,并检查它是否得到http响应代码200。问题是,如果它没有得到200,它将继续运行,但它不会在网站应该启动并运行时转到else

r = requests.head("http://www.testing.co.uk")
while r.status_code != 200:
    print "Response not == to 200."
    time.sleep(30)
else:
    print "Response is 200 - OK"
重复这个请求

r = requests.head("http://www.testing.co.uk")

while r.status_code != 200:
    print "Response not == to 200."
    time.sleep(30)
    r = requests.head("http://www.testing.co.uk")

else:
    print "Response is 200 - OK"
重复这个请求

r = requests.head("http://www.testing.co.uk")

while r.status_code != 200:
    print "Response not == to 200."
    time.sleep(30)
    r = requests.head("http://www.testing.co.uk")

else:
    print "Response is 200 - OK"
重复这个请求

r = requests.head("http://www.testing.co.uk")

while r.status_code != 200:
    print "Response not == to 200."
    time.sleep(30)
    r = requests.head("http://www.testing.co.uk")

else:
    print "Response is 200 - OK"
重复这个请求

r = requests.head("http://www.testing.co.uk")

while r.status_code != 200:
    print "Response not == to 200."
    time.sleep(30)
    r = requests.head("http://www.testing.co.uk")

else:
    print "Response is 200 - OK"

请求应循环:

numOfRequests = 1000
for i in range(numOfRequests):
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    print "Response not == to 200."
    time.sleep(30)

请求应循环:

numOfRequests = 1000
for i in range(numOfRequests):
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    print "Response not == to 200."
    time.sleep(30)

请求应循环:

numOfRequests = 1000
for i in range(numOfRequests):
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    print "Response not == to 200."
    time.sleep(30)

请求应循环:

numOfRequests = 1000
for i in range(numOfRequests):
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    print "Response not == to 200."
    time.sleep(30)

尝试此操作,包括超时检查,最长约5分钟:

import time
from datetime import datetime, timedelta
import requests

FIVE_MINUTES = timedelta(minutes=1) * 5
RETRY_DELAY = 30

end_time = datetime.now() + FIVE_MINUTES

while datetime.now() < end_time:
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    else:
        print "Response not == to 200."
        time.sleep(RETRY_DELAY)
else:
    print 'Timed out'
导入时间
从datetime导入datetime,timedelta
导入请求
五分钟=时间增量(分钟=1)*5
重试\u延迟=30
end_time=datetime.now()+五分钟
while datetime.now()

注意:因为每个请求都需要一段不可预测的时间,例如,一个请求可能会挂起2分钟,而其他请求可能会立即失败。此外,您还应该添加异常处理,因为
请求
会对失败(如“连接被拒绝”)引发异常。

尝试此操作,其中包括大约5分钟的超时检查:

import time
from datetime import datetime, timedelta
import requests

FIVE_MINUTES = timedelta(minutes=1) * 5
RETRY_DELAY = 30

end_time = datetime.now() + FIVE_MINUTES

while datetime.now() < end_time:
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    else:
        print "Response not == to 200."
        time.sleep(RETRY_DELAY)
else:
    print 'Timed out'
导入时间
从datetime导入datetime,timedelta
导入请求
五分钟=时间增量(分钟=1)*5
重试\u延迟=30
end_time=datetime.now()+五分钟
while datetime.now()

注意:因为每个请求都需要一段不可预测的时间,例如,一个请求可能会挂起2分钟,而其他请求可能会立即失败。此外,您还应该添加异常处理,因为
请求
会对失败(如“连接被拒绝”)引发异常。

尝试此操作,其中包括大约5分钟的超时检查:

import time
from datetime import datetime, timedelta
import requests

FIVE_MINUTES = timedelta(minutes=1) * 5
RETRY_DELAY = 30

end_time = datetime.now() + FIVE_MINUTES

while datetime.now() < end_time:
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    else:
        print "Response not == to 200."
        time.sleep(RETRY_DELAY)
else:
    print 'Timed out'
导入时间
从datetime导入datetime,timedelta
导入请求
五分钟=时间增量(分钟=1)*5
重试\u延迟=30
end_time=datetime.now()+五分钟
while datetime.now()

注意:因为每个请求都需要一段不可预测的时间,例如,一个请求可能会挂起2分钟,而其他请求可能会立即失败。此外,您还应该添加异常处理,因为
请求
会对失败(如“连接被拒绝”)引发异常。

尝试此操作,其中包括大约5分钟的超时检查:

import time
from datetime import datetime, timedelta
import requests

FIVE_MINUTES = timedelta(minutes=1) * 5
RETRY_DELAY = 30

end_time = datetime.now() + FIVE_MINUTES

while datetime.now() < end_time:
    r = requests.head("http://www.testing.co.uk")
    if r.status_code == 200:
        print "Response is 200 - OK"
        break
    else:
        print "Response not == to 200."
        time.sleep(RETRY_DELAY)
else:
    print 'Timed out'
导入时间
从datetime导入datetime,timedelta
导入请求
五分钟=时间增量(分钟=1)*5
重试\u延迟=30
end_time=datetime.now()+五分钟
while datetime.now()



注意:因为每个请求都需要一段不可预测的时间,例如,一个请求可能会挂起2分钟,而其他请求可能会立即失败。此外,您还应该添加异常处理,因为
请求
会对失败(如“连接被拒绝”)引发异常。

那么问题出在哪里?除非您重复请求,否则
状态\u code
不会更改!当它第一次没有得到200,它会继续运行循环,如果站点在50秒后启动并运行,仍然如此。你应该尝试在while循环中给出尝试次数,比如
while count<5:
而不是
count-=
,而不是无限调用它。那么有什么问题吗?除非你重复请求,
状态\u code
不会改变!当它第一次没有得到200,它会继续运行循环,如果站点在50秒后启动并运行,仍然如此。你应该尝试在while循环中给出尝试次数,比如
while count<5:
而不是
count-=
,而不是无限调用它。那么有什么问题吗?除非你重复请求,
状态\u code
不会改变!当它第一次没有得到200,它会继续运行循环,如果站点在50秒后启动并运行,仍然如此。你应该尝试在while循环中给出尝试次数,比如
while count<5:
而不是
count-=
,而不是无限调用它。那么有什么问题吗?除非你重复请求,
状态\u code
不会改变!当它第一次没有得到200,它将继续运行循环,如果站点在50秒后启动并运行。你应该尝试给出while循环中的尝试次数,比如
while count<5:
而不是
count-=
,而不是无限地调用它。直到现在我才知道while循环可能包含else子句,但我真的不明白这有什么用。你不能在没有else的情况下打印,因为循环已经被破坏了吗?无用的
while..else
,代码重复(请求两次)我如何给出最大的尝试?如果它每30秒运行一次,并在5分钟(10次尝试)后停止,只需使用计数器并将其添加到for循环的条件中。@Iknowpython:您应该使用时间戳来确定何时超时。使用固定次数的尝试可能太不准确,例如,如果每个请求挂起60秒然后超时(并非所有请求都立即失败),该怎么办