【发布时间】:2016-06-02 20:17:37
【问题描述】:
每次在我们后端的 Web 服务上进行调用时,我都想让 LED 闪烁。
它正在工作,但只工作了几个小时,之后它就停止工作了。
每次我们在此 URL (http://IP_ADRESS:PORT/scan) 上发帖时,我们的 LED 都会闪烁。
我想知道为什么在一段时间后它停止工作..
这是 POST 完成时调用的代码:
@app.route('/scan', methods = ['POST'])
def scan():
time.sleep(0.5)
try:
LED.rainbow()
finally:
print("Scanned")
return 'Scanned!!!'
可以在here 找到 LED.rainbow() 代码。 整个项目的代码可以在here找到。
当它停止工作时,我通过树莓派上的 ssh 进行连接,然后:
python
>>> import app
>>> app.scan()
这会使 LED 闪烁!!我不明白为什么它使用 ssh 而不是通过 http POST。
一开始我以为Flask服务器崩溃了,但是当我尝试通过CURL调用它时,一切都很好:
$ http -f POST http://IP_ADDRESS:PORT/scan
HTTP/1.0 200 OK
Content-Length: 13
Content-Type: text/html; charset=utf-8
Date: Thu, 02 Jun 2016 20:11:02 GMT
Server: Werkzeug/0.11.9 Python/2.7.9
Scanned!!!
这是我在树莓派上启动 Flask 服务器的方法:
$ sudo crontab -e
# Add this line at the end of the file
@reboot python /home/pi/Desktop/Claudie/app.py &
我错过了什么?
感谢您的帮助!
谢谢!
【问题讨论】:
-
我认为我们在
try周围缺少一些代码。你也可以在工作时尝试time http -f POST http://IP_ADDRESS:PORT/scan(因为有一些睡眠可能需要一些时间)和停止工作时相同的命令?看看执行是否需要相同的时间,或者是否有一些东西提前响起并且“睡眠”没有被执行。 -
谢谢@JulienPalard!我只是编辑我的代码,我删除了 finally 块,因为它只是一个日志,把它放回去。谢谢,我会及时监控的!
-
即使找到了也不要忘记告诉我们 ;-)
-
我会的!你有同样的问题吗?还是仅仅出于好奇?
-
两者都不是,因为将来其他人会在 SO 上找到这个问题 ;-) 他们需要答案。
标签: python flask raspberry-pi webserver crontab