[email protected] wrote:
I need to understand how pending messages are stored.

But going back to the stone age, I have several "alarms" running at all, er, times, and I have always used an "idle" handler to invoke them:

on idle
   if the long time = "4:00:00 pm" then
   wait 100 -- as Sarah says, make sure this only happens once
   send yourMessage to whereEver
end idle

You could embellish this endlessly; case structures come to mind. I have several library stacks always running with such handlers in them, so it doesn't matter what working stacks might be open; the message is sent.

In general, idle handlers should be avoided. They take up lots of engine time, and usually 99% of the time they execute, nothing happens.

Instead, Rev offers the "send <someMessage> in <time>" command that lets you place messages in a queue, where they will execute at the time you indicate. You can check this queue by looking at the pendingMessages property, which is also available in its respective message box pane. By placing an event in the queue, the engine isn't tied up needlessly by constantly checking for something that usually doesn't have to happen.

In the example above, you could schedule a single event to take place every day at 4 PM. Basically you'd calculate the number of seconds until the next alarm time, and then queue the message to trigger at that time:

function getNextDueTime
  get the date && "4:00 PM"
  convert it to dateitems
  add 1 to item 3 of it
  convert it to seconds
  return it - the seconds
end getNextDueTime

and in an alarm handler:

  -- do alarm stuff, then retrigger next event:
  send "myAlarm" to me in getNextDueTime() seconds

When the alarm goes off, your handler calculates the next due time and inserts the new message into the pending event queue.

Pending messages are not saved between sessions, so you'll have to reload any permanent alarms on each launch.

--
Jacqueline Landman Gay         |     [email protected]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to