如何为Node.js运行pm2之类的python脚本

我已经使用pm2了Node.js脚本,而且我喜欢它。

现在,我有了一个Python脚本,可以在EC2上收集流数据。有时脚本会爆炸,我希望进程管理器像pm2一样重新启动自身。

是否有与pm2 for python相同的东西?我一直在搜索,找不到任何东西。

这是我的错误

  File "/usr/local/lib/python2.7/dist-packages/tweepy/streaming.py", line 430, in filter

self._start(async)

File "/usr/local/lib/python2.7/dist-packages/tweepy/streaming.py", line 346, in _start

self._run()

File "/usr/local/lib/python2.7/dist-packages/tweepy/streaming.py", line 286, in _run

raise exception

AttributeError: 'NoneType' object has no attribute 'strip'

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90:

这是一个简单的数据收集脚本

class StdOutListener(StreamListener):

def on_data(self, data):

mydata = json.loads(data)

db.raw_tweets.insert_one(mydata)

return True

def on_error(self, status):

mydata = json.loads(status)

db.error_tweets.insert_one(mydata)

if __name__ == '__main__':

#This handles Twitter authetification and the connection to Twitter Streaming API

l = StdOutListener()

auth = OAuthHandler(consumer_key, consumer_secret)

auth.set_access_token(access_token, access_token_secret)

stream = Stream(auth, l)

#This line filter Twitter Streams to capture data by the keywords: 'python', 'javascript', 'ruby'

stream.filter(follow=[''])

我希望它可以在发生某些情况时重新启动自身。

回答:

UPD:请参见下面的答案,以获得更好的解决方案。

-

有几种解决方案。首先,您可以使用http://supervisord.org/,这是一个不错的通用过程控制系统,其中包括许多现成的功能,例如自动重启,重启计数器,日志记录,灵活的配置等。

除此之外,您可以将实现逻辑包装到一个函数中,在try

except块中运行它,捕获所有异常,当异常发生时,再次运行该函数而不是退出脚本。在您的情况下,此功能可能包括创建侦听器,身份验证和流部分。

以上是 如何为Node.js运行pm2之类的python脚本 的全部内容, 来源链接: utcz.com/qa/403973.html

回到顶部