public class WorkflowWorker extends Object implements WorkerBase
Constructor and Description |
---|
WorkflowWorker(AmazonSimpleWorkflow service,
String domain,
String taskListToPoll) |
Modifier and Type | Method and Description |
---|---|
void |
addWorkflowImplementationType(Class<?> workflowImplementationType) |
void |
addWorkflowImplementationType(Class<?> workflowImplementationType,
DataConverter converter) |
void |
addWorkflowImplementationType(Class<?> workflowImplementationType,
DataConverter converter,
Object[] constructorArgs) |
boolean |
awaitTermination(long timeout,
TimeUnit unit) |
DataConverter |
getDataConverter() |
String |
getDomain() |
long |
getDomainRetentionPeriodInDays() |
String |
getIdentity() |
int |
getMaximumPollRateIntervalMilliseconds() |
double |
getMaximumPollRatePerSecond() |
double |
getPollBackoffCoefficient() |
long |
getPollBackoffInitialInterval() |
long |
getPollBackoffMaximumInterval() |
int |
getPollThreadCount() |
AmazonSimpleWorkflow |
getService() |
String |
getTaskListToPoll()
Task list name that given worker polls for tasks.
|
Thread.UncaughtExceptionHandler |
getUncaughtExceptionHandler() |
Collection<Class<?>> |
getWorkflowImplementationTypes() |
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 |
setDefaultConverter(DataConverter converter) |
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 |
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 |
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 |
setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
Handler notified about poll request and other unexpected failures.
|
void |
setWorkflowImplementationTypes(Collection<Class<?>> workflowImplementationTypes) |
void |
shutdown() |
boolean |
shutdownAndAwaitTermination(long timeout,
TimeUnit unit) |
void |
shutdownNow() |
void |
start() |
void |
suspendPolling()
Do not make new poll requests.
|
String |
toString() |
public WorkflowWorker(AmazonSimpleWorkflow service, String domain, String taskListToPoll)
public AmazonSimpleWorkflow getService()
getService
in interface WorkerBase
public String getDomain()
getDomain
in interface WorkerBase
public boolean isRegisterDomain()
isRegisterDomain
in interface WorkerBase
public void setRegisterDomain(boolean registerDomain)
WorkerBase
false
.
When enabled #setDomainRetentionPeriodInDays(Long)
property is
required.setRegisterDomain
in interface WorkerBase
public long getDomainRetentionPeriodInDays()
getDomainRetentionPeriodInDays
in interface WorkerBase
public void setDomainRetentionPeriodInDays(long domainRetentionPeriodInDays)
WorkerBase
AmazonSimpleWorkflow.registerDomain(com.amazonaws.services.simpleworkflow.model.RegisterDomainRequest)
call. Required when
WorkerBase.isRegisterDomain()
is true
.setDomainRetentionPeriodInDays
in interface WorkerBase
public String getTaskListToPoll()
WorkerBase
getTaskListToPoll
in interface WorkerBase
public double getMaximumPollRatePerSecond()
getMaximumPollRatePerSecond
in interface WorkerBase
public void setMaximumPollRatePerSecond(double maximumPollRatePerSecond)
WorkerBase
setMaximumPollRatePerSecond
in interface WorkerBase
WorkerBase.setMaximumPollRateIntervalMilliseconds(int)
public int getMaximumPollRateIntervalMilliseconds()
getMaximumPollRateIntervalMilliseconds
in interface WorkerBase
public void setMaximumPollRateIntervalMilliseconds(int maximumPollRateIntervalMilliseconds)
WorkerBase
setMaximumPollRateIntervalMilliseconds
in interface WorkerBase
WorkerBase.setMaximumPollRatePerSecond(double)
public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()
getUncaughtExceptionHandler
in interface WorkerBase
public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
WorkerBase
setUncaughtExceptionHandler
in interface WorkerBase
public String getIdentity()
getIdentity
in interface WorkerBase
public void setIdentity(String identity)
WorkerBase
setIdentity
in interface WorkerBase
identity
- maximum size is 256 characters.public long getPollBackoffInitialInterval()
getPollBackoffInitialInterval
in interface WorkerBase
public void setPollBackoffInitialInterval(long backoffInitialInterval)
WorkerBase
setPollBackoffInitialInterval
in interface WorkerBase
backoffInitialInterval
- the interval between failure and the first retry. Default is
100.public long getPollBackoffMaximumInterval()
getPollBackoffMaximumInterval
in interface WorkerBase
public void setPollBackoffMaximumInterval(long backoffMaximumInterval)
setPollBackoffMaximumInterval
in interface WorkerBase
backoffMaximumInterval
- maximum interval between poll request retries. Default is
60000 (one minute).WorkerBase.setPollBackoffInitialInterval(long)
public boolean isDisableServiceShutdownOnStop()
isDisableServiceShutdownOnStop
in interface WorkerBase
public void setDisableServiceShutdownOnStop(boolean disableServiceShutdownOnStop)
WorkerBase
AmazonSimpleWorkflow.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 WorkerBase
public double getPollBackoffCoefficient()
getPollBackoffCoefficient
in interface WorkerBase
public void setPollBackoffCoefficient(double backoffCoefficient)
setPollBackoffCoefficient
in interface WorkerBase
backoffCoefficient
- 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 WorkerBase
public void setPollThreadCount(int threadCount)
WorkerBase
ActivityWorker
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 WorkerBase
public void registerTypesToPoll()
WorkerBase
registerTypesToPoll
in interface WorkerBase
WorkerBase.setDisableTypeRegistrationOnStart(boolean)
public void start()
start
in interface WorkerLifecycle
public void shutdown()
shutdown
in interface WorkerLifecycle
public void shutdownNow()
shutdownNow
in interface WorkerLifecycle
public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
awaitTermination
in interface WorkerLifecycle
InterruptedException
public boolean isRunning()
isRunning
in interface WorkerBase
public void suspendPolling()
Suspendable
suspendPolling
in interface Suspendable
public void resumePolling()
Suspendable
resumePolling
in interface Suspendable
public void setWorkflowImplementationTypes(Collection<Class<?>> workflowImplementationTypes) throws InstantiationException, IllegalAccessException
public Collection<Class<?>> getWorkflowImplementationTypes()
public void addWorkflowImplementationType(Class<?> workflowImplementationType) throws InstantiationException, IllegalAccessException
public void addWorkflowImplementationType(Class<?> workflowImplementationType, DataConverter converter) throws InstantiationException, IllegalAccessException
public void addWorkflowImplementationType(Class<?> workflowImplementationType, DataConverter converter, Object[] constructorArgs) throws InstantiationException, IllegalAccessException
public boolean shutdownAndAwaitTermination(long timeout, TimeUnit unit) throws InterruptedException
shutdownAndAwaitTermination
in interface WorkerLifecycle
InterruptedException
public DataConverter getDataConverter()
public void setDefaultConverter(DataConverter converter)
public void setDisableTypeRegistrationOnStart(boolean disableTypeRegistrationOnStart)
WorkerBase
SkipTypeRegistration
is not specified. Types still can be
registered by calling WorkerBase.registerTypesToPoll()
.setDisableTypeRegistrationOnStart
in interface WorkerBase
public boolean isDisableTypeRegistrationOnStart()
isDisableTypeRegistrationOnStart
in interface WorkerBase