python flask return 重启前执行
python flask return prior execution of reboot
出于某些原因,我想使用 REST api 来触发 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")
代码运行良好。但由于重启,return 将不会发送(因为系统显然正在重启)。
有没有一种方法可以延迟几毫秒来触发某种异步重启,允许 return 一些值(在我的例子中只是一个自定义 'ack')实际重启?
尝试 threading.Timer:
例如:
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")
出于某些原因,我想使用 REST api 来触发 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")
代码运行良好。但由于重启,return 将不会发送(因为系统显然正在重启)。
有没有一种方法可以延迟几毫秒来触发某种异步重启,允许 return 一些值(在我的例子中只是一个自定义 'ack')实际重启?
尝试 threading.Timer:
例如:
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")