For While循环保持运行

时间:2019-01-18 01:11:57

标签: python google-compute-engine google-container-os

以下脚本应该在启动Google Compute Engine实例(使用Container-Optimized OS映像)并且dockerized应用正常运行时将数据发送到url。 不幸的是,即使无法发布数据,该数据也会在应用运行时被接收。

输出为:

  

('错误',   ConnectionError(MaxRetryError(“ HTTPConnectionPool(host = '34 .7.8.8',   port = 12345):网址:/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 个答案:

答案 0 :(得分:1)

我看到的是您使用的是while true循环,当它超过最大重试次数时,会收到一条错误消息,因为您被服务器禁止了,但是这种状态不会永远持续下去,并且当禁止被删除时,您开始获得更多数据,因为它们仍在运行。

如果我的理论不对,您可以看看另一个话题。

Max retries exceeded with URL