在执行reb之前返回python flask

2024-04-26 04:37:17 发布

您现在位置:Python中文网/ 问答频道 /正文

出于某些原因,我想使用restapi触发raspberry pi的重启。你知道吗

我的restapi在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")

代码运行得非常好。但由于它是一个重新启动的返回将不会被发送(因为系统显然是重新启动)。你知道吗

有没有一种方法可以触发重启某种异步的延迟几毫秒,允许在实际重启之前返回一些值(在我的例子中只是一个自定义的“ack”)?你知道吗


Tags: namefromimportrestapiappflask编码pi
1条回答
网友
1楼 · 发布于 2024-04-26 04:37:17

试试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")

相关问题 更多 >