public class SpringWorkflowWorker extends Object implements WorkerBase
| Constructor and Description |
|---|
SpringWorkflowWorker() |
SpringWorkflowWorker(AmazonSimpleWorkflow service,
String domain,
String taskListToPoll) |
| Modifier and Type | Method and Description |
|---|---|
void |
addWorkflowImplementation(Object workflowImplementation) |
boolean |
awaitTermination(long timeout,
TimeUnit unit) |
DataConverter |
getDataConverter() |
String |
getDomain() |
long |
getDomainRetentionPeriodInDays() |
String |
getIdentity() |
int |
getMaximumPollRateIntervalMilliseconds() |
double |
getMaximumPollRatePerSecond() |
int |
getPhase() |
double |
getPollBackoffCoefficient() |
long |
getPollBackoffInitialInterval() |
long |
getPollBackoffMaximumInterval() |
int |
getPollThreadCount() |
AmazonSimpleWorkflow |
getService() |
String |
getTaskListToPoll()
Task list name that given worker polls for tasks.
|
long |
getTerminationTimeoutSeconds() |
Thread.UncaughtExceptionHandler |
getUncaughtExceptionHandler() |
Iterable<Object> |
getWorkflowImplementations() |
Iterable<WorkflowType> |
getWorkflowTypesToRegister() |
boolean |
isAutoStartup() |
boolean |
isDisableAutoStartup() |
boolean |
isDisableServiceShutdownOnStop() |
boolean |
isDisableTypeRegistrationOnStart() |
boolean |
isRegisterDomain() |
boolean |
isRunning() |
void |
registerTypesToPoll()
Try to register every type (activity or workflow depending on worker)
that are configured with the worker.
|
void |
resumePolling()
Allow new poll requests.
|
void |
setDataConverter(DataConverter converter) |
void |
setDisableAutoStartup(boolean disableAutoStartup) |
void |
setDisableServiceShutdownOnStop(boolean disableServiceShutdownOnStop)
When set to false (which is default) at the beginning of the worker
shutdown
AmazonSimpleWorkflow.shutdown() is called. |
void |
setDisableTypeRegistrationOnStart(boolean disableTypeRegistrationOnStart)
When set to true disables types registration on start even if
SkipTypeRegistration is not specified. |
void |
setDomain(String domain) |
void |
setDomainRetentionPeriodInDays(long domainRetentionPeriodInDays)
Value of DomainRetentionPeriodInDays parameter passed to
AmazonSimpleWorkflow.registerDomain(com.amazonaws.services.simpleworkflow.model.RegisterDomainRequest) call. |
void |
setIdentity(String identity)
Set the identity that worker specifies in the poll requests.
|
void |
setMaximumPollRateIntervalMilliseconds(int maximumPollRateIntervalMilliseconds)
The sliding window interval used to measure the poll rate.
|
void |
setMaximumPollRatePerSecond(double maximumPollRatePerSecond)
Maximum number of poll request to the task list per second allowed.
|
void |
setPhase(int startPhase) |
void |
setPollBackoffCoefficient(double backoffCoefficient) |
void |
setPollBackoffInitialInterval(long backoffInitialInterval)
Failed poll requests are retried after an interval defined by an
exponential backoff algorithm.
|
void |
setPollBackoffMaximumInterval(long backoffMaximumInterval) |
void |
setPollThreadCount(int threadCount)
Defines how many concurrent threads are used by the given worker to poll
the specified task list.
|
void |
setRegisterDomain(boolean registerDomain)
Should domain be registered on startup.
|
void |
setService(AmazonSimpleWorkflow service) |
void |
setTaskListToPoll(String taskListToPoll) |
void |
setTerminationTimeoutSeconds(long terminationTimeoutSeconds) |
void |
setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
Handler notified about poll request and other unexpected failures.
|
void |
setWorkflowImplementations(Iterable<Object> workflowImplementations) |
void |
shutdown() |
boolean |
shutdownAndAwaitTermination(long timeout,
TimeUnit unit) |
void |
shutdownNow() |
void |
start() |
void |
stop() |
void |
stop(Runnable callback) |
void |
stopNow() |
void |
suspendPolling()
Do not make new poll requests.
|
String |
toString() |
public SpringWorkflowWorker()
public SpringWorkflowWorker(AmazonSimpleWorkflow service, String domain, String taskListToPoll)
public AmazonSimpleWorkflow getService()
getService in interface WorkerBasepublic void setService(AmazonSimpleWorkflow service)
public String getDomain()
getDomain in interface WorkerBasepublic void setDomain(String domain)
public boolean isRegisterDomain()
isRegisterDomain in interface WorkerBasepublic void setRegisterDomain(boolean registerDomain)
WorkerBasefalse.
When enabled #setDomainRetentionPeriodInDays(Long) property is
required.setRegisterDomain in interface WorkerBasepublic long getDomainRetentionPeriodInDays()
getDomainRetentionPeriodInDays in interface WorkerBasepublic void setDomainRetentionPeriodInDays(long domainRetentionPeriodInDays)
WorkerBaseAmazonSimpleWorkflow.registerDomain(com.amazonaws.services.simpleworkflow.model.RegisterDomainRequest) call. Required when
WorkerBase.isRegisterDomain() is true.setDomainRetentionPeriodInDays in interface WorkerBasepublic String getTaskListToPoll()
WorkerBasegetTaskListToPoll in interface WorkerBasepublic void setTaskListToPoll(String taskListToPoll)
public DataConverter getDataConverter()
public void setDataConverter(DataConverter converter)
public double getMaximumPollRatePerSecond()
getMaximumPollRatePerSecond in interface WorkerBasepublic void setMaximumPollRatePerSecond(double maximumPollRatePerSecond)
WorkerBasesetMaximumPollRatePerSecond in interface WorkerBaseWorkerBase.setMaximumPollRateIntervalMilliseconds(int)public int getMaximumPollRateIntervalMilliseconds()
getMaximumPollRateIntervalMilliseconds in interface WorkerBasepublic void setMaximumPollRateIntervalMilliseconds(int maximumPollRateIntervalMilliseconds)
WorkerBasesetMaximumPollRateIntervalMilliseconds in interface WorkerBaseWorkerBase.setMaximumPollRatePerSecond(double)public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()
getUncaughtExceptionHandler in interface WorkerBasepublic void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
WorkerBasesetUncaughtExceptionHandler in interface WorkerBasepublic String getIdentity()
getIdentity in interface WorkerBasepublic void setIdentity(String identity)
WorkerBasesetIdentity in interface WorkerBaseidentity - maximum size is 256 characters.public long getPollBackoffInitialInterval()
getPollBackoffInitialInterval in interface WorkerBasepublic void setPollBackoffInitialInterval(long backoffInitialInterval)
WorkerBasesetPollBackoffInitialInterval in interface WorkerBasebackoffInitialInterval - the interval between failure and the first retry. Default is
100.public long getPollBackoffMaximumInterval()
getPollBackoffMaximumInterval in interface WorkerBasepublic void setPollBackoffMaximumInterval(long backoffMaximumInterval)
setPollBackoffMaximumInterval in interface WorkerBasebackoffMaximumInterval - maximum interval between poll request retries. Default is
60000 (one minute).WorkerBase.setPollBackoffInitialInterval(long)public boolean isDisableServiceShutdownOnStop()
isDisableServiceShutdownOnStop in interface WorkerBasepublic void setDisableServiceShutdownOnStop(boolean disableServiceShutdownOnStop)
WorkerBaseAmazonSimpleWorkflow.shutdown() is called. It causes all
outstanding long poll request to disconnect. But also causes all future
request (for example activity completions) to SWF fail.setDisableServiceShutdownOnStop in interface WorkerBasepublic void setDisableTypeRegistrationOnStart(boolean disableTypeRegistrationOnStart)
WorkerBaseSkipTypeRegistration is not specified. Types still can be
registered by calling WorkerBase.registerTypesToPoll().setDisableTypeRegistrationOnStart in interface WorkerBasepublic boolean isDisableTypeRegistrationOnStart()
isDisableTypeRegistrationOnStart in interface WorkerBasepublic double getPollBackoffCoefficient()
getPollBackoffCoefficient in interface WorkerBasepublic void setPollBackoffCoefficient(double backoffCoefficient)
setPollBackoffCoefficient in interface WorkerBasebackoffCoefficient - coefficient that defines how fast retry interval grows in case
of poll request failures. Default is 2.0.WorkerBase.setPollBackoffInitialInterval(long)public int getPollThreadCount()
getPollThreadCount in interface WorkerBasepublic void setPollThreadCount(int threadCount)
WorkerBaseActivityWorker two separate threads pools are used. One for
polling and another one for executing activities. The size of the
activity execution thread pool is defined through
ActivityWorker.setTaskExecutorThreadPoolSize(int).setPollThreadCount in interface WorkerBasepublic void suspendPolling()
SuspendablesuspendPolling in interface Suspendablepublic void resumePolling()
SuspendableresumePolling in interface Suspendablepublic Iterable<WorkflowType> getWorkflowTypesToRegister()
public void start()
start in interface WorkerLifecyclepublic void shutdown()
shutdown in interface WorkerLifecyclepublic void shutdownNow()
shutdownNow in interface WorkerLifecyclepublic boolean shutdownAndAwaitTermination(long timeout,
TimeUnit unit)
throws InterruptedException
shutdownAndAwaitTermination in interface WorkerLifecycleInterruptedExceptionpublic void stopNow()
public boolean awaitTermination(long timeout,
TimeUnit unit)
throws InterruptedException
awaitTermination in interface WorkerLifecycleInterruptedExceptionpublic void setWorkflowImplementations(Iterable<Object> workflowImplementations) throws InstantiationException, IllegalAccessException
public void addWorkflowImplementation(Object workflowImplementation) throws InstantiationException, IllegalAccessException
public void stop()
public boolean isRunning()
isRunning in interface WorkerBasepublic int getPhase()
public void setPhase(int startPhase)
public boolean isAutoStartup()
public long getTerminationTimeoutSeconds()
public void setTerminationTimeoutSeconds(long terminationTimeoutSeconds)
public boolean isDisableAutoStartup()
public void setDisableAutoStartup(boolean disableAutoStartup)
public void stop(Runnable callback)
public void registerTypesToPoll()
WorkerBaseregisterTypesToPoll in interface WorkerBaseWorkerBase.setDisableTypeRegistrationOnStart(boolean)