gpt4 book ai didi

Drools 工作台(业务中心)请求超时

转载 作者:行者123 更新时间:2023-12-05 07:11:35 34 4
gpt4 key购买 nike

我已经安装了 Business Central 以及 Keycloak 身份验证,使用 MySQL 作为数据库来存储 Keycloak 的数据。业务中心工作台和 Keycloak 服务器位于 Nginx 之后。在工作台上工作时,一些请求超时会给出 504 错误代码。整个业务中心 UI 卡住,之后用户无法执行任何操作。

出现 504 错误的 url 如下:https://{host}:{port}/business-central/out.43601-24741.erraiBus?z=105&clientId=43601-24741

有关设置的其他详细信息如下:

Java:1.8.0_242

业务中心版本:7.34.Final

key 斗篷版本:9.0.0

MySql: 8

业务中心的 Java 选项:-Xms1024M -Xmx2048M -XX:MaxPermSize=2048M -XX:MaxHeapSize=2048M

注意:我的所有这些设置都在 4GB EC2 实例上。

如能就此问题提供任何帮助,我们将不胜感激。

编辑:我检查了 access_log.log,看起来服务器处理请求的时间超过 45 秒。这是一个日志:

"POST/business-central/in.93979-28827.erraiBus?z=15&clientId=93979-28827&wait=1 HTTP/1.1"200 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML , 像 Gecko) Chrome/79.0.3945.130 Safari/537.36"i 45001 45.001

编辑 2:这是发送的示例请求数据:

[{"CommandType":"CDIEvent","BeanType":"org.kie.workbench.common.screens.library.api.ProjectCountUpdate","BeanReference":{"^EncodedType":"org.kie.workbench.common.screens.library.api.ProjectCountUpdate","^ObjectID":"1","count":1,"space":{"^EncodedType":"org.uberfire.spaces.Space","^ObjectID":"2","name":"Fraud_Team"}},"FromClient":"1","ToSubject":"cdi.event:Dispatcher"},{"ToSubject":"org.kie.workbench.common.screens.library.api.LibraryService:RPC","CommandType":"getAllUsers:","Qualifiers":{"^EncodedType":"java.util.ArrayList","^ObjectID":"1","^Value":[]},"MethodParms":{"^EncodedType":"java.util.Arrays$ArrayList","^ObjectID":"2","^Value":[]},"ReplyTo":"org.kie.workbench.common.screens.library.api.LibraryService:RPC.getAllUsers::94:RespondTo:RPC","ErrorTo":"org.kie.workbench.common.screens.library.api.LibraryService:RPC.getAllUsers::94:Errors:RPC"}]

URL 命中是:business-central/in.59966-45867.erraiBus?z=56&clientId=59966-45867&wait=1

处理时间超过一分钟。

最佳答案

问题描述

我在 7.38.0 上遇到了同样的问题。我认为,问题在于 ERRAI 似乎在客户端和服务器之间持续滚动 45 秒的请求以确保通信是开放的。对我来说,Nginx 的默认套接字超时为 30 秒,这意味着它为这些请求返回 504 网关超时,而实际上它们并没有“卡住”。仅当您在 Business Central 内 30 秒未执行任何操作时才会发生这种情况,否则请求将关闭并由新请求接管。我觉得 ERRAI 真的应该能够从这种情况下恢复过来,但无论如何。

解决方案

对我来说,我将我的 Nginx 服务器的套接字超时更新为 60 秒,这样 45 秒的请求就不会被 Nginx 超时。我相信这等同于 Nginx 中的 proxy_read_timeout 配置。

如果您无法更改 Nginx 配置,似乎也有一种方法可以关闭服务器与客户端的通信,如下所述:https://docs.jboss.org/errai/4.0.0.Beta3/errai/reference/html_single/#sid-59146643_BusLifecycle-TurningServerCommunicationOnandOff .我没有对此进行测试,因为我不需要,但这可能是一种选择。

关于Drools 工作台(业务中心)请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60752119/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com