我一直在使用Flask为我的k8055 USB接口板提供一个简单的web API;相当标准的吸气剂和推杆, flask 真的让我的生活轻松了很多。
但是我希望能够在乳清发生时/附近记录状态的变化。
例如,如果我有一个按钮连接到板上,我可以为那个特定的端口轮询api。但是如果我想让输出直接反映输出,不管有没有人在和api说话,我都会有这样的东西。
while True:
board.read()
board.digital_outputs = board.digital_inputs
board.read()
time.sleep(1)
每一秒钟,输出都会更新,以匹配输入。
有没有办法在Flask下做这种事情?我以前在Twisted中做过类似的事情,但是Flask对于这个特定的应用程序来说太方便了,现在还不能给予它...
- 谢谢-谢谢
4条答案
按热度按时间bq9c1y661#
对于我的Flask应用程序,我考虑使用Pashka在他的answer、schedule库和APScheduler中描述的cron方法。
我发现APScheduler很简单,并且服务于周期性任务运行的目的,所以继续使用APScheduler。
示例代码:
wvmv3b1j2#
您可以使用cron执行简单的任务。
为任务创建 flask 视图。
然后使用cron定期从该url下载
其中run_task. sh的内容为
如果您需要更高的频率(比如,每5秒=每分钟12次),则必须在tun_task. sh中按以下方式执行
tpgth1q73#
由于某种原因,Antony's code对我不起作用。我没有收到任何错误消息或任何东西,但
test_job
函数不会运行。我安装了
Flask-APScheduler
,然后使用下面的代码使其工作,这是安东尼的代码和this Techcoil article示例的混合。q3qa4bjr4#
不,Flask中不支持任务,但您可以使用flask-celery或在单独的线程(greenlet)中运行函数。