Source code for irc.schedule
import abc
import six
from tempora import schedule
__metaclass__ = type
[docs]@six.add_metaclass(abc.ABCMeta)
class IScheduler:
[docs] @abc.abstractmethod
def execute_every(self, period, func):
"execute func every period"
[docs] @abc.abstractmethod
def execute_at(self, when, func):
"execute func at when"
[docs] @abc.abstractmethod
def execute_after(self, delay, func):
"execute func after delay"
[docs] @abc.abstractmethod
def run_pending(self):
"invoke the functions that are due"
[docs]class DefaultScheduler(schedule.InvokeScheduler, IScheduler):
[docs] def execute_every(self, period, func):
self.add(schedule.PeriodicCommand.after(period, func))
[docs] def execute_at(self, when, func):
self.add(schedule.DelayedCommand.at_time(when, func))
[docs] def execute_after(self, delay, func):
self.add(schedule.DelayedCommand.after(delay, func))