请给我一些关于任务解决方案最佳模式的建议。我的任务是:
- 用户通过自己的休息向Camunda处理器发出请求 Controller
- 后端的 BPMN 模式由一系列 几个异步服务
- 数据将准备好响应 只有当 BPMN 上的一项最终服务成功时,用户才可以。
每条链的工作时间不超过 10-15 秒。用户 session 数每小时少于 500。
如何组织rest controller的工作?强制 Controller 在同一个调用中等待结果是否可以接受?瓶颈在哪里?
最佳答案
可以使用一些服务器推送技术吗?如果只是几秒钟,我会说去休息 Controller 等待。
在 15 秒内考虑可伸缩性,我会说与客户端遵循某种异步模式。
- 客户发送请求做某事
- Controller 将工作委托(delegate)给一些外部进程并返回给客户端ok
- 流程结束,响应准备就绪。
- 如果对方是浏览器,使用某种服务器推送技术来通知它。如果是应用程序,则使用某种 rpc、轮询或任何其他进程间机制进行通信。
请注意,根据托管技术的不同,对并发连接的限制也不同。检查Spring Boot - Limit on number of connections created对于 tomcat。
关于java - 如何使用来自外部客户端的异步进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59658414/