芭蕾舞演员 1 分钟后超时

问题描述 投票:0回答:2

我有一个 Ballerina API,并且有一个 API 调用,遗憾的是 API 需要一分钟多的时间才能响应,而 Ballerina 在 1 分钟后超时。我尝试尽可能增加芭蕾舞演员超时,但一分钟后 API 仍然会抛出超时。有没有办法解决这个问题。

最终http:客户端organization_CustomerMs =检查新(organization_url, 安全套接字 = { 启用:假 }, 超时=800000 );

这是代码设置。

在启动入站之前触发空闲超时是我遇到的异常。enter image description here

wso2 wso2-api-manager connection-timeout ballerina
2个回答
0
投票

您正在服务中使用这个

organization_CustomerMs
,对吧?如果是这样,则可能是您对该服务发出的请求超时。

您可以做的就是增加服务器的超时时间。您可以通过更改侦听器配置来做到这一点。

服务定义示例-:

service /foo on new http:Listener(9090, {timeout: 180}) {
}

0
投票

我相信您有如下的直通服务:

import ballerina/http;

final http:Client clientEP = check new("http://localhost:9090");

service /api on new http:Listener(9091) {

    resource function get greeting() returns string|error {
        return clientEP->/greeting;
    }
}

如果您收到

500
状态代码响应以及以下错误消息:

Idle timeout triggered before initiating inbound response

那么这意味着服务内部使用的客户端在收到响应之前超时。

要解决此问题,您必须按照您提到的那样增加客户端配置中的超时:

// Default timeout is 60s
final http:Client clientEP = check new("http://localhost:9090", timeout = 100);

但即使您增加此值,您也会遇到

408 - Request Timeout
响应,并显示以下错误消息:

Idle timeout triggered before initiating outbound response

这是因为服务器默认有 60 秒的超时时间,在收到客户端的响应之前就超时了。所以我们还必须增加服务器端的侦听器超时时间:

import ballerina/http;

final http:Client clientEP = check new("http://localhost:9090", timeout = 100);

service /api on new http:Listener(9091, timeout = 100) {

    resource function get greeting() returns string|error {
        return clientEP->/greeting;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.