当前位置: 首页>>代码示例>>Python>>正文


Python pulsar.arbiter函数代码示例

本文整理汇总了Python中pulsar.arbiter函数的典型用法代码示例。如果您正苦于以下问题:Python arbiter函数的具体用法?Python arbiter怎么用?Python arbiter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了arbiter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __call__

 def __call__(self, a=None):
     if a is None:
         a = yield spawn(name='greeter')
     if names:
         name = names.pop()
         send(a, 'greetme', {'name': name})
         self._loop.call_later(1, self, a)
     else:
         arbiter().stop()
开发者ID:JinsongBian,项目名称:pulsar,代码行数:9,代码来源:greeter.py

示例2: __call__

 async def __call__(self, a=None):
     if a is None:
         a = await pulsar.spawn(name='greeter')
     if names:
         name = names.pop()
         self._loop.logger.info("Hi! I'm %s" % name)
         await pulsar.send(a, 'greetme', {'name': name})
         self._loop.call_later(1, pulsar.ensure_future, self(a))
     else:
         pulsar.arbiter().stop()
开发者ID:juanignaciocatalano,项目名称:pulsar,代码行数:10,代码来源:greeter.py

示例3: main

 def main(self):
     arbiter = pulsar.arbiter()
     arbiter.log.info('%s - starting up the service' % self._svc_name_)
     self.running = True
     while self.running:
         time.sleep(1)
     arbiter.log.info('%s - exiting up the service' % self._svc_name_)
开发者ID:JinsongBian,项目名称:pulsar,代码行数:7,代码来源:winservice.py

示例4: __call__

    def __call__(self, actor=None):
        '''Register this application with the (optional) calling ``actor``.

        If an ``actor`` is available (either via the function argument or via
        the :func:`~pulsar.async.actor.get_actor` function) it must be
        :class:`.Arbiter`, otherwise this call is no-op.

        If no actor is available, it means this application starts
        pulsar engine by creating the :class:`.Arbiter` with its
        :ref:`global settings <setting-section-global-server-settings>`
        copied to the arbiter :class:`.Config` container.

        :return: the ``start`` one time event fired once this application
            has fired it.
        '''
        if actor is None:
            actor = get_actor()
        monitor = None
        if actor and actor.is_arbiter():
            monitor = actor.get_actor(self.name)
        if monitor is None and (not actor or actor.is_arbiter()):
            self.cfg.on_start()
            self.logger = self.cfg.configured_logger()
            if not actor:
                actor = pulsar.arbiter(cfg=self.cfg.clone())
            else:
                self.update_arbiter_params(actor)
            self.cfg.set('exc_id', actor.cfg.exc_id)
            if self.on_config(actor) is not False:
                start = Future(loop=actor._loop)
                actor.bind_event('start', partial(self._add_monitor, start))
                return start
            else:
                return
        raise ImproperlyConfigured('Already started or not in arbiter domain')
开发者ID:huobao36,项目名称:pulsar,代码行数:35,代码来源:__init__.py

示例5: monitor_start

    def monitor_start(self, monitor):
        '''When the monitor starts load all test classes into the queue'''
        cfg = self.cfg
        workers = min(0, cfg.workers)
        cfg.set('workers', workers)
        loader = self.loader

        tags = self.cfg.labels
        exclude_tags = self.cfg.exclude_labels
        if self.cfg.show_leaks:
            show = show_leaks if self.cfg.show_leaks == 1 else hide_leaks
            self.cfg.set('when_exit', show)
            arbiter = pulsar.arbiter()
            arbiter.cfg.set('when_exit', show)
        try:
            tests = []
            loader.runner.on_start()
            for tag, testcls in loader.testclasses(tags, exclude_tags):
                suite = loader.runner.loadTestsFromTestCase(testcls)
                if suite and suite._tests:
                    tests.append((tag, testcls))
            self._time_start = None
            if tests:
                self.logger.info('loading %s test classes', len(tests))
                monitor._loop.call_soon(Runner, monitor, loader.runner, tests)
            else:   # pragma    nocover
                raise ExitTest('Could not find any tests.')
        except ExitTest as e:   # pragma    nocover
            monitor.stream.writeln(str(e))
            monitor._loop.stop()
        except Exception:   # pragma    nocover
            monitor.logger.critical('Error occurred while starting tests',
                                    exc_info=True)
            monitor._loop.call_soon(self._exit, 3)
开发者ID:Danzeer,项目名称:pulsar,代码行数:34,代码来源:__init__.py

示例6: __init__

 def __init__(self):
     cfg = pulsar.Config()
     cfg.parse_command_line()
     a = pulsar.arbiter(cfg=cfg)
     self.cfg = a.cfg
     self._loop = a._loop
     self._loop.call_later(1, pulsar.ensure_future, self())
     a.start()
开发者ID:juanignaciocatalano,项目名称:pulsar,代码行数:8,代码来源:greeter.py

示例7: monitor_start

    def monitor_start(self, monitor):
        '''When the monitor starts load all test classes into the queue'''
        # Create a datastore for this test suite
        if not self.cfg.task_backend:
            server = PulsarDS(bind='127.0.0.1:0', workers=0,
                              key_value_save=[],
                              name='%s_store' % self.name)
            yield server()
            address = 'pulsar://%s:%s' % server.cfg.addresses[0]
        else:
            address = self.cfg.task_backend

        store = create_store(address, pool_size=2, loop=monitor._loop)
        self.get_backend(store)
        loader = self.loader
        tags = self.cfg.labels
        exclude_tags = self.cfg.exclude_labels
        if self.cfg.show_leaks:
            show = show_leaks if self.cfg.show_leaks == 1 else hide_leaks
            self.cfg.set('when_exit', show)
            arbiter = pulsar.arbiter()
            arbiter.cfg.set('when_exit', show)
        try:
            tests = []
            loader.runner.on_start()
            for tag, testcls in loader.testclasses(tags, exclude_tags):
                suite = loader.runner.loadTestsFromTestCase(testcls)
                if suite and suite._tests:
                    tests.append((tag, testcls))
            self._time_start = None
            if tests:
                self.logger.info('loading %s test classes', len(tests))
                monitor.cfg.set('workers', min(self.cfg.workers, len(tests)))
                self._time_start = default_timer()
                queued = []
                self._tests_done = set()
                self._tests_queued = None
                #
                # Bind to the task_done event
                self.backend.bind_event('task_done',
                                        partial(self._test_done, monitor))
                for tag, testcls in tests:
                    r = self.backend.queue_task('test', testcls=testcls,
                                                tag=tag)
                    queued.append(r)
                queued = yield multi_async(queued)
                self.logger.debug('loaded %s test classes', len(tests))
                self._tests_queued = set(queued)
                yield self._test_done(monitor)
            else:   # pragma    nocover
                raise ExitTest('Could not find any tests.')
        except ExitTest as e:   # pragma    nocover
            monitor.stream.writeln(str(e))
            monitor.arbiter.stop()
        except Exception:   # pragma    nocover
            monitor.logger.critical('Error occurred while starting tests',
                                    exc_info=True)
            monitor._loop.call_soon(self._exit, 3)
开发者ID:JinsongBian,项目名称:pulsar,代码行数:58,代码来源:__init__.py

示例8: start

    def start(self):
        """Start the :class:`pulsar.Arbiter` if it wasn't already started.

        Calling this method when the :class:`pulsar.Arbiter` is already
        running has no effect.
        """
        on_start = self()
        arbiter = pulsar.arbiter()
        if arbiter and on_start:
            arbiter.start()
        return self
开发者ID:pombredanne,项目名称:pulsar,代码行数:11,代码来源:__init__.py

示例9: __call__

 def __call__(self, argv, start=True):
     app = self.app
     server = self.pulsar_app(argv, wsgi.WSGIServer)
     if start and not server.logger:   # pragma    nocover
         if not pulsar.get_actor():
             clear_logger()
         app._started = server()
         app.on_start(server)
         arbiter = pulsar.arbiter()
         arbiter.start()
     return app
开发者ID:victor3rc,项目名称:lux,代码行数:11,代码来源:serve.py

示例10: testArbiterObject

 def testArbiterObject(self):
     '''Test the arbiter in its process domain'''
     arbiter = pulsar.get_actor()
     self.assertEqual(arbiter, pulsar.arbiter())
     self.assertTrue(arbiter.is_arbiter())
     self.assertEqual(arbiter.impl.kind, 'arbiter')
     self.assertTrue(arbiter.monitors)
     self.assertEqual(arbiter.exit_code, None)
     info = arbiter.info()
     self.assertTrue('server' in info)
     server = info['server']
     self.assertEqual(server['state'], 'running')
开发者ID:JinsongBian,项目名称:pulsar,代码行数:12,代码来源:arbiter.py

示例11: start

    def start(self):
        '''Invoked the application callable method and start
        the ``arbiter`` if it wasn't already started.

        It returns a :class:`~asyncio.Future` called back once the
        application/applications are running. It returns ``None`` if
        called more than once.
        '''
        on_start = self()
        arbiter = pulsar.arbiter()
        if arbiter and on_start:
            arbiter.start()
        return on_start
开发者ID:jklgithub,项目名称:pulsar,代码行数:13,代码来源:__init__.py

示例12: __call__

    def __call__(self, argv, start=True):
        app = self.app
        server = self.pulsar_app(argv, wsgi.WSGIServer)
        if server.cfg.nominify:
            app.params["MINIFIED_MEDIA"] = False

        if start and not server.logger:  # pragma    nocover
            if not pulsar.get_actor():
                clear_logger()
            app._started = server()
            app.on_start(server)
            arbiter = pulsar.arbiter()
            arbiter.start()
        return app
开发者ID:pvanderlinden,项目名称:lux,代码行数:14,代码来源:serve.py

示例13: start

    def start(self, exit=True):
        """Invoked the application callable method and start
        the ``arbiter`` if it wasn't already started.

        It returns a :class:`~asyncio.Future` called back once the
        application/applications are running. It returns ``None`` if
        called more than once.
        """
        on_start = self()
        arbiter = pulsar.arbiter()
        if arbiter and on_start:
            arbiter.start(exit=exit)
            if arbiter.exit_code is not None:
                return arbiter.exit_code
        return on_start
开发者ID:juanignaciocatalano,项目名称:pulsar,代码行数:15,代码来源:__init__.py

示例14: wait_for_stop

def wait_for_stop(test, aid, terminating=False):
    """Wait for an actor to stop"""
    arbiter = pulsar.arbiter()
    waiter = pulsar.Future(loop=arbiter._loop)

    def remove():
        test.assertEqual(arbiter.remove_callback("periodic_task", check), 1)
        waiter.set_result(None)

    def check(caller, **kw):
        test.assertEqual(caller, arbiter)
        if not terminating:
            test.assertFalse(aid in arbiter.managed_actors)
        elif aid in arbiter.managed_actors:
            return
        arbiter._loop.call_soon(remove)

    arbiter.bind_event("periodic_task", check)
    return waiter
开发者ID:quantmind,项目名称:pulsar,代码行数:19,代码来源:__init__.py

示例15: __call__

 def __call__(self, actor=None):
     if actor is None:
         actor = get_actor()
     monitor = None
     if actor and actor.is_arbiter():
         monitor = actor.get_actor(self.name)
     if monitor is None and (not actor or actor.is_arbiter()):
         self.cfg.on_start()
         self.configure_logging()
         self.fire_event("ready")
         arbiter = pulsar.arbiter(cfg=arbiter_config(self.cfg))
         if self.on_config(arbiter) is not False:
             if arbiter.started():
                 self._add_to_arbiter(arbiter)
             else:  # the arbiter has not yet started.
                 arbiter.bind_event("start", self._add_to_arbiter)
         else:
             return
     return self.event("start")
开发者ID:pombredanne,项目名称:pulsar,代码行数:19,代码来源:__init__.py


注:本文中的pulsar.arbiter函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。