라이브러리 RserveCLI2을 사용하여 Linux 컴퓨터에서 Rserve에 연결하는 ASP.Net 응용 프로그램을 구축 중입니다.RServeCLI2는 장기 실행 작업을 지원합니까?
필자는 R 스크립트의 실행 지속 시간을 늘려 테스트가 성공적으로 완료되었는지 확인했습니다. 아래는 제 코드입니다.
try
{
using (var rConnection = RserveCLI2.RConnection.Connect(_host, _port, _credentials))
{
rConnection.Assign("job.id", new SexpArrayInt(jobId));
rConnection.Eval($"try(source(\"script.R\"), silent=T)");
string errMessage = rConnection.Eval("geterrmessage()").ToString();
if (errMessage == "")
{ success = true; }
else
{ success = false; }
}
}
catch (Exception e)
{ success = false; }
return success;
그리고 R 스크립트를
test.start <- Sys.time()
test.duration <- (1.2^(job.id)) * 10 # in seconds.
test.i <- 0
while(as.numeric(difftime(Sys.time(), test.start), units="secs") < test.duration) {
test.i <- test.i + 1
}
job.id 효과적으로 20 %로 각각의 반복 기간을 증가 각 반복에 Rserve에서 증가 의해 전달된다. 동시에 실행되는 5 번의 반복, 각각 별도의 스레드에서 시작되었습니다.
마지막으로 완료 한 작업은 약 1 시간 40 분 동안 지속되는 것으로 나타났습니다. 다음 작업은 테스트를 중단 한 후 36 시간 이내에 완료되지 않았습니다. 새로운 직업은 시작되지 않았습니다.
올바르게 해석하면 Eval 메서드가 반환되지 않습니다. e Rserve 서버에서는 테스트 첫 시간 동안 본 Rserve 프로세스가 2 개 뿐이라는 것을 알았습니다.
이 동작이 발생할 수 있으며 RserceCLI2가 오류와 함께 반환하지 않아야합니까?