2016-11-25 3 views
1

У меня есть приложение опоки следующим образом:Неспособность закончить Колба приложение

socketio2.run(app2, host="0.0.0.0", port=4998) 

Я создал метод, чтобы закончить его следующим образом:

def shutdown_server(): 
    func = request.environ.get('werkzeug.server.shutdown') 
    if func is None: 
     raise RuntimeError('Not running with the Werkzeug Server') 
    func() 

@app2.route('/shutdown', methods=['POST']) 
def shutdown(): 
    shutdown_server() 
    print " shutdown" 
    return 'Server shutting down...' 

Я получаю следующую ошибку

Внутренняя ошибка сервера

Сервер столкнулся с int ernal error и не удалось заполнить ваш запрос. Либо сервер перегружен, либо есть ошибка в приложении .

Моя цель - завершить это приложение Flask и запустить скрипт Python. Какие-либо предложения ?

+0

ли вы импортировали модуль запроса? то есть: «из запроса на импорт колбы» –

+0

Да, я импортировал его –

ответ

1

При запуске сервера в качестве сервера socketio код сервера завершения по умолчанию не будет работать. Однако socketio предоставляет оболочку для остановки, и когда вы ее используете, поведение по умолчанию должно останавливать работу сервера. https://github.com/miguelgrinberg/Flask-SocketIO/blob/master/flask_socketio/init.py#L510

Так что если вы измените код на что-то вроде этого -

def shutdown_server(): 
    socketio2.stop() 

Затем он должен сделать работу

Смежные вопросы