当前位置: 首页 > 知识库问答 >
问题:

如何处理来自外部客户端的异步进程?

司空丰
2023-03-14

请给我一些关于任务解决方案的最佳模式的建议。我的任务是:

  1. 用户通过自己的rest控制器向Camunda处理器发出请求
  2. 后端端的BPMN架构由多个异步服务链组成
  3. 只有当BPMN上的一个最终服务做出响应时,数据才准备好响应给用户。

每条链条的工作时间不超过10-15秒。并且用户的会话计数每小时少于500个。

rest管制员的工作如何组织?在同一调用中强制控制器等待结果是否可以接受?瓶颈在哪?

共有1个答案

商华藏
2023-03-14

你能用一些服务器推送技术吗?如果只是几秒钟,我会说在rest控制器中等待。

在15秒的时间里,考虑可伸缩性,我会说遵循某种异步模式与客户机。

  1. 客户端发送执行某项操作的请求
  2. 控制器将工作委托给某个外部进程并返回给客户端OK
  3. 进程结束,响应就绪。
  4. 如果对方是浏览器,使用某种服务器推送技术通知它。如果是应用程序,则使用某种rpc、轮询或任何其他进程间机制进行通信。

注意,根据宿主技术的不同,对并发连接有不同的限制。检查为Tomcat创建的连接数的Spring Boot-Limit。

 类似资料:
  • 问题内容: 单个Servlet如何处理以用户请求形式出现的多个客户端请求?基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。对其所涉及的线程也感到困惑。 同样,这里提供了任何浏览器规范或设置,可用于跨请求发送请求或生成针对请求发送的线程。 所有框架都相同还是不同(例如,struts v / s springs)? 问题答案: Struts / S

  • 我最近从Ruby的Net:HTTP类切换到rest-client 1.6.7。

  • 我有一个使用RESTEasy的简单客户端,如下所示: 服务器配置为在以及一条有用的信息。正在抛出一个。除了包装在中之外,我如何使捕获异常并以字符串形式返回响应的有用消息。我尝试了各种实现,但似乎都是正确的。上述代码从未调用。我错过了什么? 我目前的解决方法是使用,然后执行并将原始状态填充到响应实体中。这样我就避免了异常抛出。

  • 那么如何提取错误代码呢?我想提取错误代码并构建一个responseEntity 我得到了这段代码,但不知道如何在函数中使用。

  • 我对Angular很陌生,很难掌握如何处理异步请求。 我有3个组件:父组件-AppComponent子组件-LoginComponent、NavbarComponent、仪表板组件、MainComponent、SidebarComponent 和一个AuthService 在日志组件上按“Login”按钮时,我需要将布尔值“true”传递给所有组件。在按下导航栏组件上的“注销”按钮时,我需要将布尔

  • 异步Mysql客户端 AsyncMysql::query($sql, $usePool = true) 第二个参数设为false将不会使用连接池中的资源,默认都会从连接池中取,配置连接池数量 => config/database.php 具体使用 use AsyncMysql; //设置超时时间 AsyncMysql::setTimeout(2); $res = (