2017-11-17 18 views
0

managedbean에서 하나의 작업 실행을 중지하려고합니다. 다음과 같이보다 구체적으로, 나는 작업 인스턴스를 얻고 작업 인스턴스를 중지 할 수 있어요 : JobOperator를 통해 JobInstance 중지

 JobOperator operator = BatchRuntime.getJobOperator(); 
     List<Long> re = operator.getRunningExecutions("JobName"); 
     for (Long runningExecution: re) { 
      operator.stop(runningExecution); 
     } 

은 그렇다하더라도, 그것이 계속 실행하는 인스턴스의 실행을 통해 적용되지 않습니다. 사실, 작업 인스턴스를 다시 가져 오려고하면 효과적으로 method getRunningExecutions가 요소를 반환하지 않기 때문에 불가능합니다. 이런 식으로 누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까?

미리 감사드립니다.

+0

작업을 중지하면 '실행 중'상태에서 '중지 중'상태로 넘어 가고 영원히 '중지 중'상태로 유지됩니다. –

답변

0

getRunningExecutions은 작업 실행이 STOPPING 상태 일 가능성이 높으므로 실행을 더 이상 고려하지 않으므로 빈 값을 반환합니다.

각 작업 실행시 getBatchStatus()으로 전화하여 정확한 배치 상태를 확인하십시오. 현재 단계가 batchlet 유형 단계 인 경우 배치를 수행하는 클래스는 올바르게 작업을 중단하기 위해 stop() 메소드를 구현해야합니다.

+0

안녕하세요. 나는 메소드 stop()을 구현하고 내부 메소드 stop()을 부울 변수로 이동하여 해결했다. -> boolean shouldStop = true; 고맙습니다. –

+0

이 부울은 일반적으로 '휘발성'으로 표시되어야한다고 생각합니다. –