One of my scripts that makes an API call has been failing silently lately. It appears that the connection is timing out, but I am not catching that particular error. So, I fixed that.
::: highlight @@ -8,6 +8,7 @@ import os import random import shelve +import socket import sys import time import urllib2 @@ -225,11 +226,15 @@
queries['eve-kill'] += 1
try:
- data = urllib2.urlopen(request)
+ data = urllib2.urlopen(request, timeout=60)
except urllib2.HTTPError, e:
print('url: {}'.format(url))
print('error: {}'.format(e))
sys.exit(1)
+ except socket.timeout, e:
+ print('url: {}'.format(url))
+ print('error: {}'.format(e))
+ sys.exit(1)
j = json.load(data)
:::
I set the timeout particular long at 60 seconds. Since I made the change, I do not think it has ever actually taken that long.
Also, I need to refactor this and add my own exception class since it seems I am doing the same thing on most of my exceptions.