Example #1
0
 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
Example #2
0
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
Example #3
0
 def __init__(self, expression):
     super(CronSchedule, self).__init__()
     self._expression = expression
     self._cron = CronTab(expression)