2

当 Google Compute Engine 实例(使用 Container-Optimized OS 映像)启动并且 dockerized 应用程序工作时,下面的脚本应该将数据发送到 url。不幸的是,即使它无法发布数据,应用程序运行时也会收到数据。

输出是:

('Error', 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'
    }
4

1 回答 1

1

我看到的是您正在使用 while true 循环,当它超过最大重试次数时,您会收到错误,因为您被服务器禁止但此状态不会永远存在,并且当禁止被删除时,您开始获取更多数据因为 while 还在运行。

如果我的理论不正确,您可以查看其他线程。

URL 超出最大重试次数

于 2019-01-23T02:51:22.530 回答