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()
이 작업을 수행하려면 다시 로드해야 합니다.