|
@@ -209,10 +209,15 @@ class Scheduler(object):
|
|
|
else:
|
|
|
debug('%s sent. id->%s', entry.task, result.id)
|
|
|
|
|
|
+ def adjust(self, n, drift=-0.010):
|
|
|
+ if n and n > 0:
|
|
|
+ return n + drift
|
|
|
+ return n
|
|
|
+
|
|
|
def is_due(self, entry):
|
|
|
return entry.is_due()
|
|
|
|
|
|
- def tick(self, drift=-0.010, event_t=event_t, min=min,
|
|
|
+ def tick(self, event_t=event_t, min=min,
|
|
|
heappop=heapq.heappop, heappush=heapq.heappush,
|
|
|
heapify=heapq.heapify):
|
|
|
"""Run a tick, that is one iteration of the scheduler.
|
|
@@ -220,10 +225,11 @@ class Scheduler(object):
|
|
|
Executes all due tasks.
|
|
|
|
|
|
"""
|
|
|
+ adjust = self.adjust
|
|
|
max_interval = self.max_interval
|
|
|
H = self._heap
|
|
|
if H is None:
|
|
|
- H = self._heap = [event_t(e.is_due()[1] + drift or 0, 5, e)
|
|
|
+ H = self._heap = [event_t(adjust(e.is_due()[1]) or 0, 5, e)
|
|
|
for e in values(self.schedule)]
|
|
|
heapify(H)
|
|
|
event = H[0]
|
|
@@ -239,8 +245,7 @@ class Scheduler(object):
|
|
|
else:
|
|
|
heappush(H, verify)
|
|
|
return min(verify[0], max_interval)
|
|
|
- return min(next_time_to_run + drift if next_time_to_run
|
|
|
- else max_interval, max_interval)
|
|
|
+ return min(adjust(next_time_to_run) or max_interval, max_interval)
|
|
|
|
|
|
def should_sync(self):
|
|
|
return (
|