맞춤 비즈니스 요구 사항이 있습니다. 일련의 서비스 요청을 실행해야합니다. 이러한 각각의 호출은 데이터베이스에 새로운 레코드를 작성합니다. 새 서비스 호출은 이전 서비스 호출로 DB에 작성된 레코드를 입력 매개 변수로 사용하기 때문에 이전 서비스 호출이 완료된 후에 만 다음 서비스 호출을 실행해야합니다.Java Executor는 이전 작업이 완료된 후에 하나의 Callable을 실행합니까?
나는 미래의 작업에서 이러한 서비스 호출을 각각 포장 한 다음 Executors.newSingleThreadExecutor()
을 사용하여 이러한 작업을 루프로 실행하기로 결정했습니다.
충분하지 않더라도 더 나은 해결책을 제안 하시겠습니까 ??
또한 다음 작업을 실행하기 전에 task.isDone()
을 배치해야합니까 ??
"* 각각의 작업은 이전 작업이 완료된 후에 실행되어야합니다. *"이것은 나쁜 패턴처럼 들리 - '미래'는 일반적으로 서로 의존하거나 특정 순서로 실행되어야합니다. – dimo414
@ dimo414 ......이 비즈니스 목표를 달성하는 데 더 좋은 패턴을 제안 하시겠습니까 ?? –
'미래'는 결국 * 끝내는 작업 단위가되도록 의도 된 것이며, 그런 다음에는 그 일이 생기면 그걸로 무언가를합니다. 당신은 그 요구 사항을 가지고 있지 않지만 당신의 다른 요구 사항들이 무엇인지 말하지 않았기 때문에 말하기 어렵습니다. 나는'List'에 대한 for-loop가 정상적으로 동작 할 것이라고 생각한다. 그렇지 않은 경우 기본 비즈니스 요구 사항이 무엇인지 완전히 설명하는 또 다른 질문을 올리십시오. 누군가 적절한 도구를 제안 할 수 있습니다. –
dimo414