Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 应用程序引擎urlfetch正在引发异常,而我认为它不应该引发异常_Python_Google App Engine_Monitoring - Fatal编程技术网

Python 应用程序引擎urlfetch正在引发异常,而我认为它不应该引发异常

Python 应用程序引擎urlfetch正在引发异常,而我认为它不应该引发异常,python,google-app-engine,monitoring,Python,Google App Engine,Monitoring,我已经用appengineapi编写了我的第一个Python应用程序,它旨在监视一个服务器列表,并在其中一个服务器出现故障时通知我,方法是使用Prowl向我的iPhone发送消息,或向我发送电子邮件,或两者兼而有之 问题是,它每周都会通知我几次服务器停机,即使它显然没有停机。我已经用我知道应该一直处于运行状态的服务器(如google.com或amazon.com)进行了测试,但我也收到了通知 我有一个运行在的代码副本,你可以看到google.com是在1月3日添加的,但只列出了6天 下面是che

我已经用appengineapi编写了我的第一个Python应用程序,它旨在监视一个服务器列表,并在其中一个服务器出现故障时通知我,方法是使用Prowl向我的iPhone发送消息,或向我发送电子邮件,或两者兼而有之

问题是,它每周都会通知我几次服务器停机,即使它显然没有停机。我已经用我知道应该一直处于运行状态的服务器(如google.com或amazon.com)进行了测试,但我也收到了通知

我有一个运行在的代码副本,你可以看到google.com是在1月3日添加的,但只列出了6天

下面是checkservers.py中使用urlfetch进行检查的代码的相关部分,我假设只有在无法联系服务器时才会引发DownloadError异常,但也许我错了

我错过了什么

github上mrsteveman1/aeservmon下的完整源代码(我只能作为新用户发布一个链接,对不起!)

1月21日更新:

今天我在日志中发现了一个异常:

ApplicationError: 5 
Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 507, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/aeservmon/1.339312180538855414/checkservers.py", line 149, in get
    self.testserver(server)
  File "/base/data/home/apps/aeservmon/1.339312180538855414/checkservers.py", line 106, in testserver
    result = urlfetch.fetch(url, headers = {'Cache-Control' : 'max-age=30'} )
  File "/base/python_lib/versions/1/google/appengine/api/urlfetch.py", line 241, in fetch
    return rpc.get_result()
  File "/base/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 501, in get_result
    return self.__get_result_hook(self)
  File "/base/python_lib/versions/1/google/appengine/api/urlfetch.py", line 331, in _get_fetch_result
    raise DownloadError(str(err))
DownloadError: ApplicationError: 5 

其他人一直在报告fetch服务的问题(例如)

您是否可以打印例外,它可能包含更多详细信息,例如:

"DownloadError: ApplicationError: 2 something bad"

最近的一次“假阳性”发生在美国东部时间7:04,时间不到一个小时,appengine日志中只有我用logging.info()触发的日志消息。我可以尝试让异常不被处理,但我相信我在几周前就尝试过了,只看到了DownloadError异常消息,没有其他内容。我现在会再试一次,希望今晚会再次触发异常。在我删除异常处理后,用今天发生的异常之一更新了问题。我以前没有见过ApplicationError:5,显然这意味着请求没有在urlfetch的限制内返回?是的,完全正确。。。fetch服务可能偶尔会有延迟(假设目标服务器不是问题所在)。在
fetch()
中,您可以将
deadline
参数设置为60秒左右。看起来,截止时间的最大值是10秒,我会尝试一下,但我可能需要考虑执行异步请求,或者为请求使用单独的库,如httplib。谢谢你的帮助!我要把这个答案标对吗?
"DownloadError: ApplicationError: 2 something bad"