Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python flask返回重新启动之前的执行_Python_Asynchronous_Flask Restful - Fatal编程技术网

python flask返回重新启动之前的执行

python flask返回重新启动之前的执行,python,asynchronous,flask-restful,Python,Asynchronous,Flask Restful,出于某些原因,我想使用RESTAPI触发raspberry pi的重新启动 我的REST api在python flask中编码如下: from flask import Flask from flask import jsonify import subprocess app = Flask(__name__) @app.route('/api/reboot') def reboot(): subprocess.call("/sbin/reboot") return jso

出于某些原因,我想使用RESTAPI触发raspberry pi的重新启动

我的REST api在
python flask
中编码如下:

from flask import Flask
from flask import jsonify
import subprocess

app = Flask(__name__)

@app.route('/api/reboot')
def reboot():
    subprocess.call("/sbin/reboot")
    return jsonify(triggered='reboot')

if __name__ == '__main__':
    app.run(debug=True,host="0.0.0.0")
代码运行得非常好。但是由于它是重新启动的,所以不会发送返回(因为系统显然正在重新启动)

是否有一种方法可以触发重新启动某种异步,延迟几毫秒,从而允许在实际重新启动之前返回一些值(在我的情况下只是一个自定义的“确认”)

例如:

from flask import Flask
from flask import jsonify
import subprocess
import threading

app = Flask(__name__)

def _reboot():
    subprocess.call("/sbin/reboot")

@app.route('/api/reboot')
def reboot():
    t = threading.Timer(1, _reboot)
    t.start()
    return jsonify(triggered='reboot')

if __name__ == '__main__':
    app.run(debug=True,host="0.0.0.0")

这将重新启动我的系统,因此我需要一些安装时间进行测试(我现在无法重新启动)