Python 3.x 将守护进程与RESTAPI相结合

Python 3.x 将守护进程与RESTAPI相结合,python-3.x,python-asyncio,python-multithreading,falconframework,Python 3.x,Python Asyncio,Python Multithreading,Falconframework,我正在开发一个可以在容器中运行的守护程序,该容器将持续捕获实时数据并将其提供给redis供其他方使用,我一直打算附加一个REST API,该API将提供有关redis连接状态的信息,并允许指示守护程序发布到其他redis实例 在使用python模块falcon运行了一个基本API之后,我意识到这个守护进程现在需要同时做两件事,因此我需要使用多个线程或其他异步机制 这提出了两个问题: 1) 这种结合连续守护进程和RESTAPI的构造是常见的还是明智的决定?对我来说,能够以基于网络的方式与守护进程进

我正在开发一个可以在容器中运行的守护程序,该容器将持续捕获实时数据并将其提供给redis供其他方使用,我一直打算附加一个REST API,该API将提供有关redis连接状态的信息,并允许指示守护程序发布到其他redis实例

在使用python模块falcon运行了一个基本API之后,我意识到这个守护进程现在需要同时做两件事,因此我需要使用多个线程或其他异步机制

这提出了两个问题:

1) 这种结合连续守护进程和RESTAPI的构造是常见的还是明智的决定?对我来说,能够以基于网络的方式与守护进程进行交互,允许进行更强大的集成测试等,似乎很有价值,但这可能是过火了,而且比它的价值还要麻烦?我想,另一种方法是通过配置文件对其进行配置,并根据输出数据监控其运行状况

2) 如果我继续做这个选择,那么实现双行为、线程或异步的框架的最明智选择是什么?也许没有什么大的区别,但我想听听一两个建议

非常感谢,, 科赞。

  • 1) 我认为,对于您想要获得的行为,异步RESTAPI是有意义的,例如发布/插入/启动分析的POST/PUT和检索状态和其他信息的GET可能是一个好的决定,对于一些替代方法,请看一看,但我不确定是否对您的案例有用
  • 2) 主要区别在于:通常异步IO的性能要比线程库使用的“应用程序”级别的“硬件”级别的性能好得多;出于同样的原因,线程可以让您“更能控制”线程,而不是为您管理一些高级细节的异步IO。 在我的句子中可能有一些过度的修饰,我建议你阅读那些文章:,并且阅读两个图书馆的所有文档,以便更好地理解各种用例

感谢您的帮助性回答。