|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectguarana.util.observer.smart.SmartObservable
guarana.framework.task.Task
guarana.toolkit.task.timers.Timer
guarana.toolkit.task.timers.Delayer
public abstract class Delayer
Delays an inbound message for a while before publishing it to the output gateway.
The outbound and inbound messages are exactly the same, so MESSAGE_ID is the same too!
This task must be used carefully since the associated thread that is executing this task sleeps the necessary amount
of time the message must be delayed.
Graphical notation:
This is an Integration Pattern implementation
Problem: How do we delay a message inside the integration flow that connects source(s) and target(s) applications?
Solution: Use a Delayer that takes away from the integration flow a message for a while, and then publishes it back after the delay time had expired.
Details:
Field Summary |
---|
Fields inherited from class guarana.framework.task.Task |
---|
input, output |
Constructor Summary | |
---|---|
Delayer(String name,
int numberOfInputs,
int numberOfOutputs,
long delayTime)
Constructs a new delayer task. |
|
Delayer(String name,
long delayTime)
Constructs a new delayer task. |
Method Summary | |
---|---|
void |
doWork(Exchange exchange)
This method implements the business logic of this task. |
long |
getDelayTime()
Returns the time this task have to delay the message. |
void |
setDelayTime(long delayTime)
Sets the time this task have to delay the message. |
void |
update(guarana.util.observer.smart.SmartObservable slot,
Object arg)
This method is automatically called by the observable slot to notify the slot has received a message. |
Methods inherited from class guarana.framework.task.Task |
---|
execute, getName, getTriggerInterval, isTriggerTask, setName, setTriggerInterval |
Methods inherited from class guarana.util.observer.smart.SmartObservable |
---|
addSmartObserver, containsSmartObserver, containsSmartObserver, countSmartObservers, deleteSmartObserver, deleteSmartObservers, hasChanged, notifySmartObservers, notifySmartObservers |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Delayer(String name, long delayTime)
name
- The name of this task.delayTime
- The time this task have to delay the message.public Delayer(String name, int numberOfInputs, int numberOfOutputs, long delayTime)
name
- The name of this task.numberOfInputs
- The number of input gateways this task must have.numberOfOutputs
- The number of output gateways this task must have.delayTime
- The time this task have to delay the message.Method Detail |
---|
public void doWork(Exchange exchange) throws TaskExecutionException
doWork
in class Task
exchange
- An exchange object that holds the inbound messages of this task.
TaskExecutionException
- to report any exception that has occurred during the execution of this method.public void update(guarana.util.observer.smart.SmartObservable slot, Object arg)
Task
for performance reasons.
update
in interface guarana.util.observer.smart.ISmartObserver
update
in class Task
slot
- The Slot
associated with this task.arg
- THIS PARAMETHER IS NOT USED.public void setDelayTime(long delayTime)
delayTime
- The delayTime to set.public long getDelayTime()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |