Цикл пока продолжается

Предполагается, что приведенный ниже скрипт отправляет данные на 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, когда он превышает максимальное количество повторных попыток, вы получаете сообщение об ошибке, потому что сервер забанен вами, но этот статус не длится вечно, а после снятия запрета вы начинаете получать больше данных. потому что пока еще работает.

Если моя теория не верна, вы можете взглянуть на эту другую ветку.

Превышено максимальное количество попыток с URL

Другие вопросы по тегам