scheduler instances have the following methods:
| time, priority, action, argument) | 
Executing the event means executing
action(*argument).  argument must be a
sequence holding the parameters for action.
Return value is an event which may be used for later cancellation of the event (see cancel()).
| delay, priority, action, argument) | 
| event) | 
| ) | 
| ) | 
Either action or delayfunc can raise an exception. In either case, the scheduler will maintain a consistent state and propagate the exception. If an exception is raised by action, the event will not be attempted in future calls to run().
If a sequence of events takes longer to run than the time available before the next event, the scheduler will simply fall behind. No events will be dropped; the calling code is responsible for canceling events which are no longer pertinent.