Did this page help you?

   Yes   No   Tell us about it...

com.amazonaws.services.simpleworkflow.flow.worker
Class GenericWorker

java.lang.Object
  extended by com.amazonaws.services.simpleworkflow.flow.worker.GenericWorker
All Implemented Interfaces:
Suspendable, SuspendableWorker, WorkerBase, WorkerLifecycle
Direct Known Subclasses:
GenericActivityWorker, GenericWorkflowWorker

public abstract class GenericWorker
extends Object
implements WorkerBase


Constructor Summary
GenericWorker()
           
GenericWorker(AmazonSimpleWorkflow service, String domain, String taskListToPoll)
           
 
Method Summary
 boolean awaitTermination(long timeout, TimeUnit unit)
           
 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()
           
 boolean isDisableServiceShutdownOnStop()
           
 boolean isDisableTypeRegistrationOnStart()
           
 boolean isRegisterDomain()
           
 boolean isRunning()
           
 void resumePolling()
          Allow new poll requests.
 void setDisableServiceShutdownOnStop(boolean disableServiceShutdownOnStop)
          By default when @{link shutdown() or @{link shutdownNow() is called the worker calls AmazonSimpleWorkflow.shutdown() on the service instance it is configured with before shutting down internal thread pools.
 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 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 setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
          Handler notified about poll request and other unexpected failures.
 void shutdown()
           
 boolean shutdownAndAwaitTermination(long timeout, TimeUnit unit)
           
 void shutdownNow()
           
 void start()
           
 void suspendPolling()
          Do not make new poll requests.
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.amazonaws.services.simpleworkflow.flow.WorkerBase
registerTypesToPoll
 

Constructor Detail

GenericWorker

public GenericWorker(AmazonSimpleWorkflow service,
                     String domain,
                     String taskListToPoll)

GenericWorker

public GenericWorker()
Method Detail

getService

public AmazonSimpleWorkflow getService()
Specified by:
getService in interface WorkerBase

setService

public void setService(AmazonSimpleWorkflow service)

getDomain

public String getDomain()
Specified by:
getDomain in interface WorkerBase

setDomain

public void setDomain(String domain)

isRegisterDomain

public boolean isRegisterDomain()
Specified by:
isRegisterDomain in interface WorkerBase

setRegisterDomain

public void setRegisterDomain(boolean registerDomain)
Should domain be registered on startup. Default is false. When enabled #setDomainRetentionPeriodInDays(Long) property is required.

Specified by:
setRegisterDomain in interface WorkerBase

getDomainRetentionPeriodInDays

public long getDomainRetentionPeriodInDays()
Specified by:
getDomainRetentionPeriodInDays in interface WorkerBase

setDomainRetentionPeriodInDays

public void setDomainRetentionPeriodInDays(long domainRetentionPeriodInDays)
Description copied from interface: WorkerBase
Value of DomainRetentionPeriodInDays parameter passed to AmazonSimpleWorkflow.registerDomain(com.amazonaws.services.simpleworkflow.model.RegisterDomainRequest) call. Required when WorkerBase.isRegisterDomain() is true.

Specified by:
setDomainRetentionPeriodInDays in interface WorkerBase

getTaskListToPoll

public String getTaskListToPoll()
Description copied from interface: WorkerBase
Task list name that given worker polls for tasks.

Specified by:
getTaskListToPoll in interface WorkerBase

setTaskListToPoll

public void setTaskListToPoll(String taskListToPoll)

getMaximumPollRatePerSecond

public double getMaximumPollRatePerSecond()
Specified by:
getMaximumPollRatePerSecond in interface WorkerBase

setMaximumPollRatePerSecond

public void setMaximumPollRatePerSecond(double maximumPollRatePerSecond)
Description copied from interface: WorkerBase
Maximum number of poll request to the task list per second allowed. Default is 0 which means unlimited.

Specified by:
setMaximumPollRatePerSecond in interface WorkerBase
See Also:
WorkerBase.setMaximumPollRateIntervalMilliseconds(int)

getMaximumPollRateIntervalMilliseconds

public int getMaximumPollRateIntervalMilliseconds()
Specified by:
getMaximumPollRateIntervalMilliseconds in interface WorkerBase

setMaximumPollRateIntervalMilliseconds

public void setMaximumPollRateIntervalMilliseconds(int maximumPollRateIntervalMilliseconds)
Description copied from interface: WorkerBase
The sliding window interval used to measure the poll rate. Controls allowed rate burstiness. For example if allowed rate is 10 per second and poll rate interval is 100 milliseconds the poller is not going to allow more then one poll per 100 milliseconds. If poll rate interval is 10 seconds then 100 request can be emitted as fast as possible, but then the polling stops until 10 seconds pass.

Specified by:
setMaximumPollRateIntervalMilliseconds in interface WorkerBase
See Also:
WorkerBase.setMaximumPollRatePerSecond(double)

getUncaughtExceptionHandler

public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()
Specified by:
getUncaughtExceptionHandler in interface WorkerBase

setUncaughtExceptionHandler

public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
Description copied from interface: WorkerBase
Handler notified about poll request and other unexpected failures. The default implementation logs the failures using ERROR level.

Specified by:
setUncaughtExceptionHandler in interface WorkerBase

getIdentity

public String getIdentity()
Specified by:
getIdentity in interface WorkerBase

setIdentity

public void setIdentity(String identity)
Description copied from interface: WorkerBase
Set the identity that worker specifies in the poll requests. This value ends up stored in the identity field of the corresponding Start history event. Default is "pid"@"host".

Specified by:
setIdentity in interface WorkerBase
Parameters:
identity - maximum size is 256 characters.

getPollBackoffInitialInterval

public long getPollBackoffInitialInterval()
Specified by:
getPollBackoffInitialInterval in interface WorkerBase

setPollBackoffInitialInterval

public void setPollBackoffInitialInterval(long backoffInitialInterval)
Description copied from interface: WorkerBase
Failed poll requests are retried after an interval defined by an exponential backoff algorithm. See BackoffThrottler for more info.

Specified by:
setPollBackoffInitialInterval in interface WorkerBase
Parameters:
backoffInitialInterval - the interval between failure and the first retry. Default is 100.

getPollBackoffMaximumInterval

public long getPollBackoffMaximumInterval()
Specified by:
getPollBackoffMaximumInterval in interface WorkerBase

setPollBackoffMaximumInterval

public void setPollBackoffMaximumInterval(long backoffMaximumInterval)
Specified by:
setPollBackoffMaximumInterval in interface WorkerBase
Parameters:
backoffMaximumInterval - maximum interval between poll request retries. Default is 60000 (one minute).
See Also:
WorkerBase.setPollBackoffInitialInterval(long)

isDisableServiceShutdownOnStop

public boolean isDisableServiceShutdownOnStop()
Specified by:
isDisableServiceShutdownOnStop in interface WorkerBase
See Also:
setDisableServiceShutdownOnStop(boolean)

setDisableServiceShutdownOnStop

public void setDisableServiceShutdownOnStop(boolean disableServiceShutdownOnStop)
By default when @{link shutdown() or @{link shutdownNow() is called the worker calls AmazonSimpleWorkflow.shutdown() on the service instance it is configured with before shutting down internal thread pools. Otherwise threads that are waiting on a poll request might block shutdown for the duration of a poll. This flag allows disabling this behavior.

Specified by:
setDisableServiceShutdownOnStop in interface WorkerBase
Parameters:
disableServiceShutdownOnStop - true means do not call AmazonSimpleWorkflow.shutdown()

getPollBackoffCoefficient

public double getPollBackoffCoefficient()
Specified by:
getPollBackoffCoefficient in interface WorkerBase

setPollBackoffCoefficient

public void setPollBackoffCoefficient(double backoffCoefficient)
Specified by:
setPollBackoffCoefficient in interface WorkerBase
Parameters:
backoffCoefficient - coefficient that defines how fast retry interval grows in case of poll request failures. Default is 2.0.
See Also:
WorkerBase.setPollBackoffInitialInterval(long)

getPollThreadCount

public int getPollThreadCount()
Specified by:
getPollThreadCount in interface WorkerBase

setPollThreadCount

public void setPollThreadCount(int threadCount)
Description copied from interface: WorkerBase
Defines how many concurrent threads are used by the given worker to poll the specified task list. Default is 1. Note that in case of 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).

Specified by:
setPollThreadCount in interface WorkerBase

setDisableTypeRegistrationOnStart

public void setDisableTypeRegistrationOnStart(boolean disableTypeRegistrationOnStart)
Description copied from interface: WorkerBase
When set to true disables types registration on start even if SkipTypeRegistration is not specified. Types still can be registered by calling WorkerBase.registerTypesToPoll().

Specified by:
setDisableTypeRegistrationOnStart in interface WorkerBase

isDisableTypeRegistrationOnStart

public boolean isDisableTypeRegistrationOnStart()
Specified by:
isDisableTypeRegistrationOnStart in interface WorkerBase

start

public void start()
Specified by:
start in interface WorkerLifecycle

shutdown

public void shutdown()
Specified by:
shutdown in interface WorkerLifecycle

shutdownNow

public void shutdownNow()
Specified by:
shutdownNow in interface WorkerLifecycle

awaitTermination

public boolean awaitTermination(long timeout,
                                TimeUnit unit)
                         throws InterruptedException
Specified by:
awaitTermination in interface WorkerLifecycle
Throws:
InterruptedException

shutdownAndAwaitTermination

public boolean shutdownAndAwaitTermination(long timeout,
                                           TimeUnit unit)
                                    throws InterruptedException
Specified by:
shutdownAndAwaitTermination in interface WorkerLifecycle
Throws:
InterruptedException

toString

public String toString()
Overrides:
toString in class Object

isRunning

public boolean isRunning()
Specified by:
isRunning in interface WorkerBase

suspendPolling

public void suspendPolling()
Description copied from interface: Suspendable
Do not make new poll requests. Outstanding long polls still can return tasks after this method was called.

Specified by:
suspendPolling in interface Suspendable

resumePolling

public void resumePolling()
Description copied from interface: Suspendable
Allow new poll requests.

Specified by:
resumePolling in interface Suspendable


Copyright © 2010 Amazon Web Services, Inc. All Rights Reserved.