示例#1
0
文件: agents.py 项目: adamchainz/cell
 def reset(self):
     debug('Resetting active actors')
     for actor in values(self.registry):
         if actor.consumer:
             ignore_errors(self.connection, actor.consumer.cancel)
         actor.connection = self.connection
         self._start_actor_consumer(actor)
示例#2
0
文件: agents.py 项目: yutiansut/cell
 def reset(self):
     debug('Resetting active actors')
     for actor in values(self.registry):
         if actor.consumer:
             ignore_errors(self.connection, actor.consumer.cancel)
         actor.connection = self.connection
         self._start_actor_consumer(actor)
示例#3
0
文件: redis.py 项目: s-ben/Capstone
 def close(self):
     for fd in values(self._chan_to_sock):
         try:
             self.poller.unregister(fd)
         except (KeyError, ValueError):
             pass
     self._channels.clear()
     self._fd_to_chan.clear()
     self._chan_to_sock.clear()
示例#4
0
 def close(self):
     for fd in values(self._chan_to_sock):
         try:
             self.poller.unregister(fd)
         except (KeyError, ValueError):
             pass
     self._channels.clear()
     self._fd_to_chan.clear()
     self._chan_to_sock.clear()
示例#5
0
 def periodic(self):
     workers = self.state.workers
     dirty = set()
     for worker in values(workers):
         if not worker.alive:
             dirty.add(worker)
             self.on_node_lost(worker)
     for worker in dirty:
         workers.pop(worker.hostname, None)
示例#6
0
文件: consumer.py 项目: aidan/celery
 def periodic(self):
     workers = self.state.workers
     dirty = set()
     for worker in values(workers):
         if not worker.alive:
             dirty.add(worker)
             self.on_node_lost(worker)
     for worker in dirty:
         workers.pop(worker.hostname, None)
示例#7
0
 def __enter__(self):
     # The __warningregistry__'s need to be in a pristine state for tests
     # to work properly.
     warnings.resetwarnings()
     for v in values(sys.modules):
         if getattr(v, '__warningregistry__', None):
             v.__warningregistry__ = {}
     self.warnings_manager = warnings.catch_warnings(record=True)
     self.warnings = self.warnings_manager.__enter__()
     warnings.simplefilter('always', self.expected)
     return self
示例#8
0
文件: utils.py 项目: celery/cell
 def __enter__(self):
     # The __warningregistry__'s need to be in a pristine state for tests
     # to work properly.
     warnings.resetwarnings()
     for v in values(sys.modules):
         if getattr(v, '__warningregistry__', None):
             v.__warningregistry__ = {}
     self.warnings_manager = warnings.catch_warnings(record=True)
     self.warnings = self.warnings_manager.__enter__()
     warnings.simplefilter('always', self.expected)
     return self
示例#9
0
 def _collect(self, connection):
     if connection is not None:
         for channel in values(connection.channels):
             channel.connection = None
         try:
             os.close(connection.fileno())
         except OSError:
             pass
         connection.channels.clear()
         connection.callbacks.clear()
     self.client.drain_events = None
     self.client = None
示例#10
0
 def _collect(self, connection):
     if connection is not None:
         for channel in values(connection.channels):
             channel.connection = None
         try:
             os.close(connection.fileno())
         except OSError:
             pass
         connection.channels.clear()
         connection.callbacks.clear()
     self.client.drain_events = None
     self.client = None
示例#11
0
文件: agents.py 项目: yutiansut/cell
 def _shutdown(self, cancel=True, close=True, clear=True):
     try:
         for actor in values(self.registry):
             if actor and actor.consumer:
                 if cancel:
                     ignore_errors(self.connection,
                                   actor.consumer.cancel)
                 if close and actor.consumer.channel:
                     ignore_errors(self.connection,
                                   actor.consumer.channel.close)
     finally:
         if clear:
             self.registry.clear()
示例#12
0
文件: agents.py 项目: adamchainz/cell
 def _shutdown(self, cancel=True, close=True, clear=True):
     try:
         for actor in values(self.registry):
             if actor and actor.consumer:
                 if cancel:
                     ignore_errors(self.connection,
                                   actor.consumer.cancel)
                 if close and actor.consumer.channel:
                     ignore_errors(self.connection,
                                   actor.consumer.channel.close)
     finally:
         if clear:
             self.registry.clear()
示例#13
0
文件: log.py 项目: eliziario/celery
def iter_open_logger_fds():
    seen = set()
    loggers = list(values(logging.Logger.manager.loggerDict)) + [logging.getLogger(None)]
    for logger in loggers:
        try:
            for handler in logger.handlers:
                try:
                    if handler not in seen:  # pragma: no cover
                        yield handler.stream
                        seen.add(handler)
                except AttributeError:
                    pass
        except AttributeError:  # PlaceHolder does not have handlers
            pass
示例#14
0
文件: log.py 项目: j0hnsmith/celery
def iter_open_logger_fds():
    seen = set()
    loggers = logging.Logger.manager.loggerDict
    for logger in values(logging.Logger.manager.loggerDict):
        try:
            for handler in logger.handlers:
                try:
                    if handler not in seen:
                        yield handler.stream
                        seen.add(handler)
                except AttributeError:
                    pass
        except AttributeError:  # PlaceHolder does not have handlers
            pass
示例#15
0
文件: log.py 项目: zksfyz/celery
def iter_open_logger_fds():
    seen = set()
    loggers = (list(values(logging.Logger.manager.loggerDict)) +
               [logging.getLogger(None)])
    for l in loggers:
        try:
            for handler in l.handlers:
                try:
                    if handler not in seen:  # pragma: no cover
                        yield handler.stream
                        seen.add(handler)
                except AttributeError:
                    pass
        except AttributeError:  # PlaceHolder does not have handlers
            pass
示例#16
0
文件: consumer.py 项目: EDHsu/celery
 def start(self, c):
     info("mingle: searching for neighbors")
     I = c.app.control.inspect(timeout=1.0, connection=c.connection)
     replies = I.hello(c.hostname, revoked._data) or {}
     replies.pop(c.hostname, None)
     if replies:
         info("mingle: sync with %s nodes", len([reply for reply, value in items(replies) if value]))
         for reply in values(replies):
             if reply:
                 try:
                     other_clock, other_revoked = MINGLE_GET_FIELDS(reply)
                 except KeyError:  # reply from pre-3.1 worker
                     pass
                 else:
                     c.app.clock.adjust(other_clock)
                     revoked.update(other_revoked)
         info("mingle: sync complete")
     else:
         info("mingle: all alone")
示例#17
0
 def start(self, c):
     info('mingle: searching for neighbors')
     I = c.app.control.inspect(timeout=1.0, connection=c.connection)
     replies = I.hello(c.hostname, revoked._data) or {}
     replies.pop(c.hostname, None)
     if replies:
         info('mingle: sync with %s nodes',
              len([reply for reply, value in items(replies) if value]))
         for reply in values(replies):
             if reply:
                 try:
                     other_clock, other_revoked = MINGLE_GET_FIELDS(reply)
                 except KeyError:  # reply from pre-3.1 worker
                     pass
                 else:
                     c.app.clock.adjust(other_clock)
                     revoked.update(other_revoked)
         info('mingle: sync complete')
     else:
         info('mingle: all alone')
示例#18
0
 def close(self):
     super(Channel, self).close()
     for queue in values(self.queues):
         queue.empty()
     self.queues = {}
示例#19
0
 def _put_fanout(self, exchange, message, **kwargs):
     for queue in values(self.queues):
         queue.put(message)