def _on_state_set(self, **kwargs): if kwargs.get('value'): self.scheduler = Scheduler( callback=self.on_scheduler_process_msg) #, spawn_threads=True) self.scheduler.start() elif self.scheduler is not None: self.scheduler.stop(blocking=self._block_on_state_change) self.scheduler = None
def __init__(self, **kwargs): super(MessageHandler, self).__init__(**kwargs) self.register_signal('new_message') self.queue_parent = kwargs.get('queue_parent') mcls = kwargs.get( 'message_class', getattr(self.queue_parent, 'message_class', 'Message')) self.message_class = MESSAGE_CLASSES.get(mcls) self.queue_time_method = kwargs.get('queue_time_method', 'datetime_utc') self.message_queue = Scheduler(time_method=self.queue_time_method, callback=self.dispatch_message) self.message_queue.start()