9.4. 관리된 예약 실행자 서비스

관리되는 예약된 executor 서비스 (javax.enterprise.concurrent.ManagedScheduledExecutorService) 를 사용하면 자카르타 EE 애플리케이션이 비동기 실행을 위한 작업을 예약할 수 있습니다. JBoss EAP는 관리형 예약 실행자 서비스 인스턴스를 처리하므로 자카르타 EE 애플리케이션은 라이프사이클 관련 메서드를 호출할 수 없습니다.

관리형 실행자 서비스 동시성 유틸리티의 속성은 다음과 같습니다.

  • context-service: 기존 컨텍스트 서비스를 이름으로 참조합니다. 지정된 경우 작업을 실행자에 제출할 때 참조된 컨텍스트 서비스가 표시되는 호출 컨텍스트를 캡처합니다. 이 컨텍스트는 작업을 실행할 때 사용됩니다.
  • hung-task-threshold: 관리 예약된 executor 서비스에 의해 중단된 것으로 간주되는 시간(밀리초)을 정의하고 강제로 중단된 시간을 정의합니다. 값이 기본값인 0 이면 작업이 중단되지 않습니다.
  • keepalive-time: 내부 스레드가 유휴 상태일 수 있는 시간을 밀리초 단위로 정의합니다. 속성 기본값은 60000 입니다.
  • reject-policy: 실행자가 작업을 거부할 때 사용할 정책을 정의합니다. 특성 값은 기본 ABORT 일 수 있습니다. 즉 예외를 throw해야 함을 의미하며 RETRY_ABORT 는 executor가 예외를 발생하기 전에 한 번 더 제출하려고 합니다.
  • 코어 스레드: 예약된 실행자가 사용할 최소 스레드 수를 정의합니다.
  • jndi-name: 관리 예약된 실행자 서비스를 JNDI에 배치해야 하는 위치를 정의합니다.
  • long-running-tasks: 장기 실행 작업의 실행을 최적화하고 기본값은 false입니다.
  • thread-factory: 기존 관리 스레드 팩토리를 이름으로 참조하여 내부 스레드 생성을 처리합니다. 지정하지 않으면 기본 구성이 포함된 관리형 스레드 팩토리가 생성되고 내부적으로 사용됩니다.

예제: 새 관리 예약 실행자 서비스 추가

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:add(jndi-name=java:jboss/ee/concurrency/scheduledexecutor/newManagedScheduledExecutorService, core-threads=7, context-service=default)

이 작업을 수행하려면 다시 로드해야 합니다.

예제: 관리형 예약 실행자 서비스 변경

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:write-attribute(name=core-threads, value=10)

이 작업을 수행하려면 다시 로드해야 합니다. 마찬가지로 다른 특성을 변경할 수 있습니다.

예제: 관리형 예약 실행자 서비스 제거

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:remove()

이 작업을 수행하려면 다시 로드해야 합니다.