Цикл пока продолжается
Предполагается, что приведенный ниже скрипт отправляет данные на URL-адрес при запуске экземпляра Google Compute Engine (с использованием образа ОС, оптимизированного для работы с контейнерами) и работающем приложении. К сожалению, даже если не удается опубликовать данные, данные принимаются, когда приложение работает.
Выход:
("Ошибка", ConnectionError(MaxRetryError("HTTPConnectionPool(host='34.7.8.8', port=12345): превышено максимальное количество попыток с помощью url: /didi.json (вызвано NewConnectionError(': не удалось установить новое соединение: [Errno 111] Отказано в соединении ',))",),))
Это исходит от GCE?
Вот код Python:
for i in range(0,100):
while True:
try:
response = requests.post('http://%s:12345/didi.json' % ip_of_instance, data=data)
except requests.exceptions.RequestException as err:
print ("Error",err)
time.sleep(2)
continue
break
Изменить - вот параметры почтового запроса:
data = {
'url': 'www.website.com',
'project': 'webCrawl',
'spider': 'indexer',
'setting': 'ELASTICSEARCH_SERVERS=92.xx.xx.xx',
'protocol': 'https',
'scraper': 'light'
}
1 ответ
Я вижу, что вы используете цикл while true, когда он превышает максимальное количество повторных попыток, вы получаете сообщение об ошибке, потому что сервер забанен вами, но этот статус не длится вечно, а после снятия запрета вы начинаете получать больше данных. потому что пока еще работает.
Если моя теория не верна, вы можете взглянуть на эту другую ветку.