public class WorkManagerTaskExecutor extends JndiLocatorSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, WorkManagerEE, BootstrapContextAware, InitializingBean
WorkManager
EE インターフェースを実装する JCA 1.7 WorkManager に委譲する TaskExecutor
実装。これは主に JCA ResourceAdapter 実装内での使用を目的としていますが、スタンドアロン環境で使用して、ローカルに埋め込まれた WorkManager 実装(Geronimo など)に委譲することもできます。
また、JCA 1.7 WorkManager インターフェース自体を実装し、すべての呼び出しをターゲット WorkManager に委譲します。呼び出し元は、Spring TaskExecutor インターフェースまたは WorkManager インターフェースを介してこのエグゼキューターと通信するかどうかを選択できます。
このアダプターは、JNDI から JCA WorkManager を取得することもできます。これは、たとえば、WorkManager GBean(たとえば Geronimo のデフォルトの "DefaultWorkManager" GBean)が geronimo-web.xml
デプロイ記述子の "gbean-ref" エントリを介して Java EE 環境にリンクできる Geronimo アプリケーションサーバーで適切です。
setWorkManager(javax.resource.spi.work.WorkManager)
, WorkManager.scheduleWork(javax.resource.spi.work.Work)
EECONTAINER_PREFIX
logger
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
IMMEDIATEEE, INDEFINITEEE, UNKNOWNEE
コンストラクターと説明 |
---|
WorkManagerTaskExecutor() Bean スタイルの構成を想定して、新しい WorkManagerTaskExecutor を作成します。 |
WorkManagerTaskExecutor(WorkManagerEE workManager) 指定された WorkManager の新しい WorkManagerTaskExecutor を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() |
void | doWork(WorkEE work) |
void | doWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) |
void | execute(RunnableSE task) 指定された task を実行します。 |
void | execute(RunnableSE task, long startTimeout) 指定された task を実行します。 |
protected WorkManagerEE | getDefaultWorkManager() 委譲先のデフォルト WorkManager を取得します。 |
void | scheduleWork(WorkEE work) |
void | scheduleWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) |
void | setBlockUntilCompleted(boolean blockUntilCompleted) 作業が完了するまで execute(java.lang.Runnable) をブロックさせるかどうかを設定します。 |
void | setBlockUntilStarted(boolean blockUntilStarted) 実際に作業が開始されるまで execute(java.lang.Runnable) をブロックさせるかどうかを設定します。 |
void | setBootstrapContext(BootstrapContextEE bootstrapContext) 委譲先の WorkManager を含む JCA BootstrapContext を指定します。 |
void | setTaskDecorator(TaskDecorator taskDecorator) 実行しようとしている Runnable SE に適用するカスタム TaskDecorator を指定します。 |
void | setWorkListener(WorkListenerEE workListener) 適用する JCA WorkListener を指定します(ある場合)。 |
void | setWorkManager(WorkManagerEE workManager) 委譲先の JCA WorkManager インスタンスを指定します。 |
void | setWorkManagerName(StringSE workManagerName) JCA WorkManager の JNDI 名を設定します。 |
long | startWork(WorkEE work) |
long | startWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) |
<T> FutureSE<T> | submit(CallableSE<T> task) Callable タスクを送信して実行し、そのタスクを表す Future を受け取ります。 |
FutureSE<?> | submit(RunnableSE task) 実行可能な Runnable タスクを送信し、そのタスクを表す Future を受け取ります。 |
<T> ListenableFuture<T> | submitListenable(CallableSE<T> task) Callable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。 |
ListenableFuture<?> | submitListenable(RunnableSE task) Runnable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。 |
convertJndiName, isResourceRef, lookup, lookup, setResourceRef
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
prefersShortLivedTasks
public WorkManagerTaskExecutor()
public WorkManagerTaskExecutor(WorkManagerEE workManager)
workManager
- 委譲する JCA WorkManagerpublic void setWorkManager(WorkManagerEE workManager)
public void setWorkManagerName(StringSE workManagerName)
これは、完全修飾 JNDI 名、または "resourceRef" が "true" に設定されている場合は現在の環境命名コンテキストに相対的な JNDI 名のいずれかになります。
public void setBootstrapContext(BootstrapContextEE bootstrapContext)
BootstrapContextAware
の setBootstrapContext
bootstrapContext
- このオブジェクトによって使用される BootstrapContext オブジェクト InitializingBean.afterPropertiesSet()
, ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)
public void setBlockUntilStarted(boolean blockUntilStarted)
execute(java.lang.Runnable)
をブロックさせるかどうかを設定します。 デフォルトの scheduleWork
の代わりに、下にある JCA startWork
操作を使用します。
public void setBlockUntilCompleted(boolean blockUntilCompleted)
execute(java.lang.Runnable)
をブロックさせるかどうかを設定します。 デフォルトの scheduleWork
の代わりに、下にある JCA doWork
操作を使用します。
public void setWorkListener(@Nullable WorkListenerEE workListener)
この共有 WorkListener インスタンスは、この TaskExecutor のすべての execute(java.lang.Runnable)
呼び出しによって WorkManager に渡されます。
public void setTaskDecorator(TaskDecorator taskDecorator)
Runnable
SE に適用するカスタム TaskDecorator
を指定します。 このようなデコレータは、必ずしもユーザー提供の Runnable
/Callable
に適用されるのではなく、実際の実行コールバック(ユーザー提供のタスクのラッパーである可能性があります)に適用されることに注意してください。
主な使用例は、タスクの呼び出しの周囲に実行コンテキストを設定するか、タスク実行の監視 / 統計を提供することです。
public void afterPropertiesSet() throws NamingExceptionSE
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
NamingExceptionSE
protected WorkManagerEE getDefaultWorkManager()
デフォルトの実装は SimpleTaskWorkManager
を返します。サブクラスでオーバーライドできます。
public void execute(RunnableSE task)
TaskExecutor
task
を実行します。実装が非同期実行戦略を使用している場合、呼び出しはすぐに戻るか、同期実行の場合はブロックする可能性があります。
ExecutorSE
の executeSE
TaskExecutor
の execute
task
- 実行する Runnable
(非 null
)public void execute(RunnableSE task, long startTimeout)
AsyncTaskExecutor
task
を実行します。AsyncTaskExecutor
の execute
task
- 実行する Runnable
(非 null
)startTimeout
- タスクが開始される予定の期間(ミリ秒)。これはエグゼキューターへのヒントとして意図されており、即時タスクの優先処理を可能にします。一般的な値は AsyncTaskExecutor.TIMEOUT_IMMEDIATE
または AsyncTaskExecutor.TIMEOUT_INDEFINITE
(TaskExecutor.execute(Runnable)
で使用されるデフォルト)です。public FutureSE<?> submit(RunnableSE task)
AsyncTaskExecutor
null
の結果を返します。AsyncTaskExecutor
の submit
task
- 実行する Runnable
(非 null
)public <T> FutureSE<T> submit(CallableSE<T> task)
AsyncTaskExecutor
AsyncTaskExecutor
の submit
task
- 実行する Callable
(非 null
)public ListenableFuture<?> submitListenable(RunnableSE task)
AsyncListenableTaskExecutor
Runnable
タスクを実行のために送信し、そのタスクを表す ListenableFuture
を受け取ります。Future は完了時に null
の結果を返します。AsyncListenableTaskExecutor
の submitListenable
task
- 実行する Runnable
(非 null
)ListenableFuture
public <T> ListenableFuture<T> submitListenable(CallableSE<T> task)
AsyncListenableTaskExecutor
Callable
タスクを実行のために送信し、そのタスクを表す ListenableFuture
を受け取ります。Future は、完了時に Callable の結果を返します。AsyncListenableTaskExecutor
の submitListenable
task
- 実行する Callable
(非 null
)ListenableFuture
public void doWork(WorkEE work) throws WorkExceptionEE
WorkManagerEE
の doWorkEE
WorkExceptionEE
public void doWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) throws WorkExceptionEE
WorkManagerEE
の doWorkEE
WorkExceptionEE
public long startWork(WorkEE work) throws WorkExceptionEE
WorkManagerEE
の startWorkEE
WorkExceptionEE
public long startWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) throws WorkExceptionEE
WorkManagerEE
の startWorkEE
WorkExceptionEE
public void scheduleWork(WorkEE work) throws WorkExceptionEE
WorkManagerEE
の scheduleWorkEE
WorkExceptionEE
public void scheduleWork(WorkEE work, long delay, ExecutionContextEE executionContext, WorkListenerEE workListener) throws WorkExceptionEE
WorkManagerEE
の scheduleWorkEE
WorkExceptionEE