芭蕾舞女演员:启动入站响应之前已触发空闲超时

时间:2018-10-04 07:07:45

标签: http ballerina

我正在每10分钟运行一次的芭蕾舞女演员项目中执行任务约会。它可以正常工作大约一个小时,但是当执行时间达到2小时时,就会出现错误。以下是错误日志。

2018-10-04 12:00:00,002 INFO - Scanning the Github repository
2018-10-04 12:01:00,008 ERROR - Idle timeout triggered before initiating inbound response : {message:"Idle timeout triggered before initiating inbound response", cause:null, statusCode:0}

从错误日志来看,空闲时间似乎是1分钟。

这是程序代码。

public function main(string... args) {

        log:printInfo("------ Scheduling Appointments --------------");   

        (function() returns error?) onTriggerFunction = gitHubTaskExecute;
        (function(error)) onErrorFunction = gitGubTaskError;

        gitGubTask = new task:Appointment(onTriggerFunction, 
                                            onErrorFunction, 
                                            "0 30 1 * * ?");

        gitGubTask.schedule();
    }
}

@Description { value:"Execute the Github repository scanning task"}
function gitHubTaskExecute() returns (error?) {
    log:printInfo("Scanning the Github repository : " + repository);
    executedTaskCount = executedTaskCount + 1;
    if (executedTaskCount == 100) {
        log:printInfo("Stopping Appointment#1 cleanup task since it
                       has run 100 times");

        gitGubTask.cancel();
    }
    return cleanup();
}

@Description { value:"Execute the task cleanup"}
function cleanup() returns (error?) {
    //Call function here

    return ();
}

任何想法触发此错误的原因是什么?我要执行一项每天应执行的任务。

1 个答案:

答案 0 :(得分:1)

请注意,当连接空闲时间超过指定时间时,IdleTimeout就会触发。然后,服务器/客户端将使用适当的响应关闭连接。如果您要禁用它,可以将其设置为>= 0

示例客户端端点:

endpoint http:Client clientEndpoint {
    url: "http://localhost:9090",
    timeoutMillis: 300000
};

http客户端和服务器端点中有一个名为timeoutInMillis的配置。如果需要,可以增加此值。