我用Python做了毒蛇机器人。工作正常。现在我尝试在一个web服务器上运行几个bot。第一个机器人正在工作,但是 第二个不是。你知道吗
app = Flask(__name__)
app2 = Flask('app2')
@app.route('/', methods=['POST'])
def incoming():
viber_request = viber.parse_request(request.get_data())
if isinstance(viber_request, ViberMessageRequest):
viber.send_messages(viber_request.sender.id,[TextMessage(text='test1')] )
@app2.route('/ff', methods=['POST'])
def incoming2():
viber_request = viber.parse_request(request.get_data())
if isinstance(viber_request, ViberMessageRequest):
viber.send_messages(viber_request.sender.id,[TextMessage(text='test2')] )
def set_webhook(viber):
viber.unset_webhook()
time.sleep(1)
viber.set_webhook('https://myhost.pythonanywhere.com')
def set_webhook2(viber2):
viber2.unset_webhook()
time.sleep(1)
viber2.set_webhook('https://myhost.pythonanywhere.com/ff')
if __name__ == "__main__":
scheduler = sched.scheduler(time.time, time.sleep)
scheduler.enter(5, 1, set_webhook, (viber,))
t = threading.Thread(target=scheduler.run)
t.start()
scheduler = sched.scheduler(time.time, time.sleep)
scheduler.enter(5, 1, set_webhook2, (viber2,))
t = threading.Thread(target=scheduler.run)
t.start()
app.run(host='https://myhost.pythonanywhere.com', port=8443, debug=True)
app2.run(host='https://myhost.pythonanywhere.com/ff', port=8080, debug=True)
第一个bot响应test1,但第二个bot保持沉默。 如何在一个web服务器上正确运行几个bot?两个标记都是正确的
可能的原因是您正在使用:
而不是
换言之,你不必创建两个不同的应用程序。 如果从代码中删除最后一行(app2.run(host='https://myhost.pythonanywhere.com/ff',port=8080,debug=True)),那么代码将正常工作,您可以访问端口8443上的https://myhost.pythonanywhere.com/上的第一个bot和端口8443上的https://myhost.pythonanywhere.com/ff上的第二个bot
相关问题 更多 >
编程相关推荐