added the prevent_drift parameter

This commit is contained in:
niphlod
2014-01-20 22:43:53 +01:00
parent 4cbdf612af
commit 9434baba11
+10 -2
View File
@@ -507,6 +507,8 @@ class Scheduler(MetaScheduler):
requires=IS_INT_IN_RANGE(-1, None)),
Field('period', 'integer', default=60, comment='seconds',
requires=IS_INT_IN_RANGE(0, None)),
Field('prevent_drift', 'boolean', default=False,
comment='Cron-like start_times between runs'),
Field('timeout', 'integer', default=60, comment='seconds',
requires=IS_INT_IN_RANGE(0, None)),
Field('sync_output', 'integer', default=0,
@@ -635,9 +637,15 @@ class Scheduler(MetaScheduler):
else:
logger.info('nothing to do')
return None
next_run_time = task.last_run_time + datetime.timedelta(
seconds=task.period)
times_run = task.times_run + 1
if not task.prevent_drift:
next_run_time = task.last_run_time + datetime.timedelta(
seconds=task.period
)
else:
next_run_time = task.start_time + datetime.timedelta(
seconds=task.period * times_run
)
if times_run < task.repeats or task.repeats == 0:
#need to run (repeating task)
run_again = True