【问题标题】:run few viber bots on flask server在烧瓶服务器上运行几个 viber 机器人
【发布时间】:2018-12-30 17:56:25
【问题描述】:

我在 python 上制作了 viber 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)

第一个机器人以 test1 响应,但第二个机器人沉默。 如何在一个网络服务器上正确运行几个机器人?两个标记都是正确的

【问题讨论】:

    标签: python python-3.x flask pythonanywhere viber


    【解决方案1】:

    可能的原因是您正在使用:

    @app.route('/ff', methods=['POST'])
    

    而不是

    @app2.route('/ff', methods=['POST'])
    

    另外,您不必创建 2 个不同的应用程序。 如果您从代码中删除最后一行( app2.run(host='https://myhost.pythonanywhere.com/ff', port=8080, debug=True) ),那么您的代码将正常工作,您可以在端口 8443 上的https://myhost.pythonanywhere.com/ 访问第一个机器人和https://myhost.pythonanywhere.com/ff 上的第二个机器人也在端口 8443 上

    【讨论】:

    • 不,对不起,我有不同的装饰器名称。只是在我的帖子中犯了错误。谢谢你的回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2019-05-13
    相关资源
    最近更新 更多