class PrefetchBatches(batches.Batches): def Strategy(self, task, app, consumer): handler = super(PrefetchBatches, self).Strategy(task, app, consumer) def task_handler(*args, **kwargs): if consumer.qos.value < self.flush_every: diff = self.flush_every - consumer.qos.value consumer.qos.increment_eventually(diff) return handler(*args, **kwargs) return task_handler