Rom*_*her 11 python multithreading multiprocessing multitasking flask
我有一个长时间运行的进程,从telnet端口连续读取,可能偶尔写入它.有时我想向它发送一个HTTP请求以获取自上次询问以来读取的信息.有时我可能会发送HTTP请求将某些数据写入另一个telnet端口.
我应该用2个线程执行此操作,如果是这样,我应该使用互斥锁或指令队列.你怎么用烧瓶穿线?我应该使用多处理吗?别的什么?
我问这个问题的原因是我遇到了类似问题的问题(但是串口而不是telnet端口,直接在应用程序中而不是本地/远程HTTP服务)并且最终导致非数据读取线程几乎从不运行,即使在我插入了大量的睡眠电话.我最终将它从互斥锁重写为队列,然后再使用多处理w /队列.
编辑:telnet端口是与应用程序的连接,该应用程序与硬件(打印机)进行通信(主要是读取调试数据).我想写的烧瓶HTTP服务将通过针对打印机运行的测试来访问(在同一台机器上或与HTTP服务不同的机器上),这些都不涉及Web浏览器!
小智 6
这些长轮询作业最好使用套接字实现,它们并不真正适合Flask/WSGI模型,因为它不适合异步操作.你可能想看看扭曲或龙卷风.
这表示读取/写入telnet的后端进程可能在一个单独的线程中运行,该线程可能会也可能不会从HTTP请求启动.一旦你从烧瓶app开始一个线程,它将不会阻止响应.
您可以通过偶尔轮询Flask应用程序获取新数据,从它写入的数据存储中读取.这可以通过使用javascript和超时在浏览器中实现客户端,但它有点hacky.
归档时间: |
|
查看次数: |
969 次 |
最近记录: |