Я хочу перенаправить на URL через некоторое время - PullRequest
0 голосов
/ 11 октября 2019

Я использую флеш-сервер. Я хочу остановить сервер по сценарию.
Ниже приведен мой код, но для остановки сервера я должен вручную остановить его. Я хочу, чтобы через 5 секунд сервер автоматически останавливался.
Как я могу это сделать?

import sys

from flask import Flask, send_file, request, jsonify
import os

upload_directory="/home/einfochips/Desktop/"
file_name = "android.tar.gz"
app = Flask(__name__)

if not os.path.exists(upload_directory):
    sys.exit(0)

@app.route('/')
def list_files():
    files = []
    for filename in  os.listdir(upload_directory):
        path = os.path.join(upload_directory,filename)
        if os.path.isfile(path):
            files.append(filename)
    return jsonify(files)

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

@app.route('/shutdown')
def shutdown():
    shutdown_server()
    return 'Server shutting down...'

if __name__ == '__main__':
     app.run(debug = True)

1 Ответ

1 голос
/ 11 октября 2019

Вы можете использовать

 from threading import Timer
 Timer(5.0, shutdown_server).start()

Полный код

import sys

from flask import Flask, send_file, request, jsonify
import os
from threading import Timer
import requests

upload_directory="/home/einfochips/Desktop/"
file_name = "android.tar.gz"
app = Flask(__name__)

if not os.path.exists(upload_directory):
    sys.exit(0)


@app.route('/')
def list_files():
    files = []
    for filename in  os.listdir(upload_directory):
        path = os.path.join(upload_directory,filename)
        if os.path.isfile(path):
            files.append(filename)
    return jsonify(files)

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

def start_shutdown_server():
    print('starting shutdown server after 5ms with api')
    requests.get('http://localhost:5000/shutdown')

@app.route('/shutdown')
def shutdown():
    print('shutdown Called')
    shutdown_server()
    return 'Server shutting down...'

if __name__ == '__main__':
    Timer(5.0, start_shutdown_server).start()
    app.run(debug = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...