How to ensure execution of message schedules
1 posts in topic
Flat View  Flat View

Posted By:   Karl_Cassaigne
Posted On:   Monday, May 1, 2006 07:16 AM

Hi again,

in the FAQ you describe how to use message schedules as a generic way to implement redelivery delay. I need this functionality but I must be sure that message whose delivery has been delayed this way will not be lost for any reason.

Since each message schedule has a specific execution date after which the schedule will be automatically deleted, I'm wondering how to ensure that a message schedule is executed exactly once even in case the SwiftMQ router would happen to be down at the time the schedule should have been executed ?


Re: How to ensure execution of message schedules

Posted By:   Andreas_Mueller  
Posted On:   Tuesday, May 2, 2006 03:30 AM

There is no way to ensure that. A message schedule survives a router restart if the message is marked persistent. When a router starts, the Scheduler Swiftlet computes the next job starts on base of the schedule. If the schedule is already expired, for example an "at 10:18" schedule and a router start at 10:19, there is no further job start and the message schedule is automatically removed without execution.

But you can dispatch your message jobs to the Scheduler Swiftlet of any router in a router network. Since you plan to use SwiftMQ HA Router, you could dispatch your schedules to that Scheduler Swiftlet to ensure execution.
About | Sitemap | Contact