def add_crontab_occurrences(self, count=2): """ Ajouter des occurrences selon le crontab """ crontab = self.get_data('crontab', '') scheduler = CronTab(crontab) occurrence_time = timezone.now() occurrences_added = 0 for index in range(count): delay = scheduler.next(now=occurrence_time) occurrence_time += delay success = self.add_occurrence(occurrence_time) occurrences_added += 1 if success else 0 return occurrences_added
class CronSchedule(Schedule): ''' >>> from datetime import datetime >>> schedule = CronSchedule('0 * * * *') >>> str(schedule) '0 * * * *' >>> schedule.is_overdue(datetime(2000, 1, 1, 1, 0, 0), datetime(2000, 1, 1, 0, 0, 0)) True >>> schedule.is_overdue(datetime(2000, 1, 1, 0, 30, 0), datetime(2000, 1, 1, 0, 0, 0)) False ''' def __init__(self, expression): super(CronSchedule, self).__init__() self._expression = expression self._cron = CronTab(expression) def __str__(self): return self._expression def is_overdue(self, now, last): delta = self._cron.next(last) delta = timedelta(seconds=delta) return last + delta <= now
def __init__(self, expression): super(CronSchedule, self).__init__() self._expression = expression self._cron = CronTab(expression)