-
- def tick(self, event_t=event_t, min=min, heappop=heapq.heappop,
- heappush=heapq.heappush):
- """Run a tick - one iteration of the scheduler.
-
- Executes one due task per call.
-
- Returns:
- float: preferred delay in seconds for next call.
- """
- adjust = self.adjust
- max_interval = self.max_interval
-
- if (self._heap is None or
- not self.schedules_equal(self.old_schedulers, self.schedule)):
- self.old_schedulers = copy.copy(self.schedule)
- self.populate_heap()
-
- H = self._heap
-
- if not H:
- return max_interval
-
- event = H[0]
- entry = event[2]
- is_due, next_time_to_run = self.is_due(entry)
- print ('is_due:%s, nex_time_to_run:%s' % (is_due, next_time_to_run))
- if is_due:
- verify = heappop(H)
- print 'verify'
- print verify
- print event
- if verify is event:
- next_entry = self.reserve(entry)
- print 'next_entry %s' % next_entry
- self.apply_entry(entry, producer=self.producer)
- print 'heappush? %s' % heappush(H, event_t(self._when(next_entry, next_time_to_run),
- event[1], next_entry))
- print 'return 0'
- return 1
- else:
- heappush(H, verify)
- print 'verify[0]%s' % verify[0]
- return min(verify[0], max_interval)
- print adjust(next_time_to_run)
- print max_interval
- return min(adjust(next_time_to_run) or max_interval, max_interval)
-