2014-10-21 5 views
1

외부로 제출 된 작업이 끝나기를 기다리고 싶습니다.DRMAA로 외부에서 시작된 작업을 어떻게 기다릴 수 있습니까?

첫 번째 아이디어는 qstat을 호출 한 다음 session.wait(jobID, Session.TIMEOUT_WAIT_FOREVER);을 실행하여 jobID를 얻는 것입니다. 그러나 이것은 효과가 없습니다. 작업이 더 이상 열거되지 않을 때까지 qstat으로 전화하는 것을 제외하고는 다른 아이디어가 있습니까?

답변

0

정확히 session.wait(jobId, Session.TIMEOUT_WAIT_FOREVER)에서 작동하지 않는 것을 설명 할 수 있습니까? 그것은 또한 나의 성향 일 것이며 작업의 리턴 코드를 검색 할 수있게 해줍니다.

관련성이있는 뭔가가 here입니다. 그것은 synchronize 대신 wait의를 사용하여 제안 : 그렇지 않으면

session.synchronize(Collections.singletonList(jobId), 
         Session.TIMEOUT_WAIT_FOREVER, false); 
int status = session.getJobProgramStatus(jobId); 

, 당신은 그것의 완료 신호/기록하는 작업에 무언가를 추가 할 수 있습니다 것?

+1

'session.wait (jobId, Session.TIMEOUT_WAIT_FOREVER)를 호출 할 때'org.ggf.drmaa.InvalidJobException : 'jobid'로 지정된 작업이 존재하지 않습니다. ' ' 동기화 (synchronize) '하지만, 작업이 끝날 때까지는 실제로 기다리지 않습니다. – schnarchnase