示例#1
0
 def __init__(self,
              app,
              connection=None,
              exchange=None,
              exchange_type=None,
              persistent=None,
              serializer=None,
              auto_delete=True,
              **kwargs):
     super(AMQPBackend, self).__init__(app, **kwargs)
     conf = self.app.conf
     self._connection = connection
     self.persistent = self.prepare_persistent(persistent)
     self.delivery_mode = 2 if self.persistent else 1
     exchange = exchange or conf.result_exchange
     exchange_type = exchange_type or conf.result_exchange_type
     self.exchange = self._create_exchange(
         exchange,
         exchange_type,
         self.delivery_mode,
     )
     self.serializer = serializer or conf.result_serializer
     self.auto_delete = auto_delete
     self.queue_arguments = dictfilter({
         'x-expires':
         maybe_s_to_ms(self.expires),
     })
     self.result_consumer = self.ResultConsumer(self, self.app, self.accept,
                                                self._pending_results)
     if register_after_fork is not None:
         register_after_fork(self, _on_after_fork_cleanup_backend)
示例#2
0
 def __init__(self):
     self._engines = {}
     self._sessions = {}
     self.forked = False
     self.prepared = False
     if register_after_fork is not None:
         register_after_fork(self, _after_fork_cleanup_session)
示例#3
0
文件: amqp.py 项目: lican09/celery
 def __init__(self, app, connection=None, exchange=None, exchange_type=None,
              persistent=None, serializer=None, auto_delete=True, **kwargs):
     super(AMQPBackend, self).__init__(app, **kwargs)
     conf = self.app.conf
     self._connection = connection
     self._out_of_band = {}
     self.persistent = self.prepare_persistent(persistent)
     self.delivery_mode = 2 if self.persistent else 1
     exchange = exchange or conf.result_exchange
     exchange_type = exchange_type or conf.result_exchange_type
     self.exchange = self._create_exchange(
         exchange, exchange_type, self.delivery_mode,
     )
     self.serializer = serializer or conf.result_serializer
     self.auto_delete = auto_delete
     self.queue_arguments = dictfilter({
         'x-expires': maybe_s_to_ms(self.expires),
     })
     self.result_consumer = self.ResultConsumer(
         self, self.app, self.accept,
         self._pending_results, self._weak_pending_results,
         self._pending_messages,
     )
     if register_after_fork is not None:
         register_after_fork(self, _on_after_fork_cleanup_backend)
示例#4
0
 def __init__(self):
     self._engines = {}
     self._sessions = {}
     self.forked = False
     self.prepared = False
     if register_after_fork is not None:
         register_after_fork(self, _after_fork_cleanup_session)
示例#5
0
    def __init__(self, *args, **kwargs):
        super_ = super(Channel, self)
        super_.__init__(*args, **kwargs)

        if not self.ack_emulation:  # disable visibility timeout
            self.QoS = virtual.QoS

        self._queue_cycle = cycle_by_name(self.queue_order_strategy)()
        self.Client = self._get_client()
        self.ResponseError = self._get_response_error()
        self.active_fanout_queues = set()
        self.auto_delete_queues = set()
        self._fanout_to_queue = {}
        self.handlers = {'BRPOP': self._brpop_read, 'LISTEN': self._receive}

        if self.fanout_prefix:
            if isinstance(self.fanout_prefix, string_t):
                self.keyprefix_fanout = self.fanout_prefix
        else:
            # previous versions did not set a fanout, so cannot enable
            # by default.
            self.keyprefix_fanout = ''

        # Evaluate connection.
        try:
            self.client.info()
        except Exception:
            self._disconnect_pools()
            raise

        self.connection.cycle.add(self)  # add to channel poller.
        # copy errors, in case channel closed but threads still
        # are still waiting for data.
        self.connection_errors = self.connection.connection_errors

        if register_after_fork is not None:
            register_after_fork(self, _after_fork_cleanup_channel)
示例#6
0
    def __init__(self, *args, **kwargs):
        super_ = super(Channel, self)
        super_.__init__(*args, **kwargs)

        if not self.ack_emulation:  # disable visibility timeout
            self.QoS = virtual.QoS

        self._queue_cycle = cycle_by_name(self.queue_order_strategy)()
        self.Client = self._get_client()
        self.ResponseError = self._get_response_error()
        self.active_fanout_queues = set()
        self.auto_delete_queues = set()
        self._fanout_to_queue = {}
        self.handlers = {'BRPOP': self._brpop_read, 'LISTEN': self._receive}

        if self.fanout_prefix:
            if isinstance(self.fanout_prefix, string_t):
                self.keyprefix_fanout = self.fanout_prefix
        else:
            # previous versions did not set a fanout, so cannot enable
            # by default.
            self.keyprefix_fanout = ''

        # Evaluate connection.
        try:
            self.client.info()
        except Exception:
            self._disconnect_pools()
            raise

        self.connection.cycle.add(self)  # add to channel poller.
        # copy errors, in case channel closed but threads still
        # are still waiting for data.
        self.connection_errors = self.connection.connection_errors

        if register_after_fork is not None:
            register_after_fork(self, _after_fork_cleanup_channel)
示例#7
0
文件: base.py 项目: 277800076/celery
 def _ensure_after_fork(self):
     if not self._after_fork_registered:
         self._after_fork_registered = True
         if register_after_fork is not None:
             register_after_fork(self, _after_fork_cleanup_app)
示例#8
0
文件: base.py 项目: shejianmin/celery
 def _ensure_after_fork(self):
     if not self._after_fork_registered:
         self._after_fork_registered = True
         if register_after_fork is not None:
             register_after_fork(self, _after_fork_cleanup_app)