Send email or restart when a background python script gives an error

March 26, 2014 1.2k views
Hi, I am running a Python script that retrieves Twitter data (detached using screen). It sometimes gives the error "connection was forcibly closed by remote host". Is it possible to automate sending an email or restart the script when it gives an error? The script is saving the output to a file and not printing anything on the screen, if that helps. It runs on Ubuntu 12.04.3 x64 I am also attaching the script. Thank you. class CustomStreamListener(tweepy.StreamListener): def on_status(self, status): if status.lang == "tr": with codecs.open(os.path.join(_dir, 'do.json'), "a", 'utf-8') as textFile: textFile.write(status.json) textFile.write('\n') def on_error(self, status_code): print >> sys.stderr, 'Encountered error with status code:', status_code return True # Don't kill the stream def on_timeout(self): print >> sys.stderr, 'Timeout...' return True # Don't kill the stream if __name__ == '__main__': print "extracting" l = CustomStreamListener() auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) stream = tweepy.Stream(auth, l) stream.filter(track = keyword)
1 Answer
Have you checked if Twitter might be limiting your API queries?
Have another answer? Share your knowledge.