def _run(self): # The run method for the threads in this therad pool poller = IOqueue(self._actor, self._inqueue, self._maxtasks) # Create the event loop which get tasks from the task queue logger = logging.getLogger('pulsar.%s.%s' % (self._actor.name, self.worker_name)) event_loop = new_event_loop(io=poller, poll_timeout=1, logger=logger) event_loop.add_reader(poller.fileno(), poller.handle_events) event_loop.run_forever()
def test_run_until_complete_timeout(self): event_loop = new_event_loop(iothreadloop=False) self.assertFalse(event_loop.running) self.assertFalse(event_loop.iothreadloop) d = pulsar.Deferred() event_loop.call_later(10, d.callback, "OK") self.assertRaises(pulsar.TimeoutError, event_loop.run_until_complete, d, timeout=2) self.assertFalse(d.done()) self.assertFalse(event_loop.running)
def test_run_until_complete(self): event_loop = new_event_loop(iothreadloop=False) self.assertFalse(event_loop.running) self.assertFalse(event_loop.iothreadloop) self.assertEqual(str(event_loop), '<not running> pulsar') d = pulsar.Deferred() event_loop.call_later(2, d.callback, 'OK') event_loop.run_until_complete(d) self.assertTrue(d.done()) self.assertEqual(d.result, 'OK') self.assertFalse(event_loop.running)
def test_run_until_complete_timeout(self): event_loop = new_event_loop(iothreadloop=False) self.assertFalse(event_loop.running) self.assertFalse(event_loop.iothreadloop) d = pulsar.Deferred() event_loop.call_later(10, d.callback, 'OK') self.assertRaises(pulsar.TimeoutError, event_loop.run_until_complete, d, timeout=2) self.assertFalse(d.done()) self.assertFalse(event_loop.running)
def get_event_loop(self): '''Return the :class:`EventLoop` used by this :class:`Client`. The event loop can be set during initialisation. If :attr:`force_sync` is ``True`` a specialised event loop is created. ''' if self.event_loop: return self.event_loop elif self.force_sync: logger = logging.getLogger(('pulsar.%s' % self).lower()) self.event_loop = new_event_loop(iothreadloop=False, logger=logger) return self.event_loop else: return get_event_loop()
def setup_event_loop(self, actor): event_loop = new_event_loop(io=self.io_poller(), logger=actor.logger, poll_timeout=actor.params.poll_timeout) actor.mailbox = self.create_mailbox(actor, event_loop) proc_name = "%s-%s" % (actor.cfg.proc_name, actor) if system.set_proctitle(proc_name): actor.logger.debug('Set process title to %s', proc_name) system.set_owner_process(actor.cfg.uid, actor.cfg.gid) if signal: actor.logger.debug('Installing signals') for sig in system.EXIT_SIGNALS: try: actor.event_loop.add_signal_handler( sig, self.handle_exit_signal, actor) except ValueError: pass
def test_coroutine(self): loop = new_event_loop(iothreadloop=False) d = Deferred() loop.call_soon(main, d, loop, 1) loop.run_until_complete(d) self.assertEqual(d.result, 9)
def setup_event_loop(self, actor): '''Create the event loop but don't install signals.''' event_loop = new_event_loop(io=self.io_poller(), logger=actor.logger, poll_timeout=actor.params.poll_timeout) actor.mailbox = self.create_mailbox(actor, event_loop)
def test_coroutine(self): loop = new_event_loop(iothreadloop=False) d= Deferred() loop.call_soon(main, d, loop, 1) loop.run_until_complete(d) self.assertEqual(d.result, 9)