Я разрабатываю бота Python Messenger, используя оболочку из pymessenger .Это работает локально, но в производстве оно ломается. Как и в каждую секунду, есть 15-20 требований.Я использую Pm2 для перезапуска процесса при выключении / закрытии.Когда я запускаю приложение, оно запускается в течение 10-20 секунд, работает как положено, но внезапно показывает эту ошибку и перезапускается.Буду очень признателен, если кто-нибудь сможет мне помочь.
Вот код:
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import os
import emoji
from flask import Flask, request
from pymessenger.bot import Bot
app = Flask(__name__)
bot = Bot(ACCESS_TOKEN)
@app.route("/webhook", methods=['GET', 'POST'])
def hello():
if request.method == 'GET':
if request.args.get("hub.verify_token") == VERIFY_TOKEN:
return request.args.get("hub.challenge")
else:
return 'Invalid verification token'
try:
if request.method == 'POST':
output = request.get_json()
for event in output['entry']:
if event.get("messaging"):
messaging = event['messaging']
for x in messaging:
if x.get('message'):
recipient_id = x['sender']['id']
if x['message'].get('text'):
message = emoji.demojize(x['message']['text'])
#-----------------------some other code ------------------
#-------------------------------------------------------
bot.send_text_message(
recipient_id, "replay")
if x['message'].get('attachments'):
bot.send_text_message(
recipient_id, "No result!!")
else:
pass
return "Success"
return "Success"
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
except ValueError:
print "Could not convert data to an integer."
except:
print "Unexpected error:", sys.exc_info()[0]
raise
if __name__ == "__main__":
app.run(port=5000, debug=False)
Я не разработчик Python, просто использую его для библиотеки, которую я не могунайти в другой платформе для мессенджера Bot.
Вот журнал ошибок:
File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 654, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 713, in finish
self.wfile.close()
File "/usr/lib/python2.7/socket.py", line 283, in close
self.flush()
File "/usr/lib/python2.7/socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
socket.error: [Errno 32] Broken pipe