我正在写的新服务不是完全基于RESTful,而是更多基于操作,因此在python中研究了类似RPC的机制。我正在研究gRPC python的实现,并将其与Flask REST服务进行比较。
传统上,如果我在python中拥有Django / Python REST API,则对于运行某些业务逻辑/从ORM获取数据并返回JSON的同步调用,代码将作为请求处理程序的一部分编写。如果有一个异步任务需要运行,通常人们将使用celery或某种分布式工作流引擎,触发任务并响应触发该任务的Web请求。
如果要将此映射到我正在编写的新gRPC服务,建议使用以下哪种模式:
运行计算繁重的同步调用-我是否应该运行执行任务并返回响应的线程。我听说python上的gRPC不完全支持asyncio。
运行异步任务-我应该继续遵循celery模型,还是python中的gRPC服务器实现建议使用类似的方法,例如在同一服务器实例中具有本地线程池,多处理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。