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


Python kombu.Producer方法代码示例

本文整理汇总了Python中kombu.Producer方法的典型用法代码示例。如果您正苦于以下问题:Python kombu.Producer方法的具体用法?Python kombu.Producer怎么用?Python kombu.Producer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在kombu的用法示例。


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

示例1: __init__

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def __init__(self, name=None):
        if app.config['DEBUG']:
            setup_logging(loglevel='DEBUG', loggers=[''])

        self.connection = BrokerConnection(AMQP_URL)
        try:
            self.connection.connect()
        except Exception as e:
            LOG.error('Failed to connect to AMQP transport %s: %s', AMQP_URL, e)
            raise RuntimeError

        self.channel = self.connection.channel()
        self.exchange_name = AMQP_TOPIC

        self.exchange = Exchange(name=self.exchange_name, type='fanout', channel=self.channel)
        self.producer = Producer(exchange=self.exchange, channel=self.channel)

        super(FanoutPublisher, self).__init__(name)

        LOG.info('Configured fanout publisher on topic "%s"', AMQP_TOPIC) 
开发者ID:alerta,项目名称:alerta-contrib,代码行数:22,代码来源:alerta_amqp.py

示例2: test

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def test(url):
    from kombu import Exchange, Queue, Connection, Consumer, Producer
    task_queue = Queue('tasks', exchange=Exchange('celery', type='direct'), routing_key='tasks')
    # 生产者
    with Connection(url) as conn:
        with conn.channel() as channel:
            producer = Producer(channel)
            producer.publish({'hello': 'world'},
                             retry=True,
                             exchange=task_queue.exchange,
                             routing_key=task_queue.routing_key,
                             declare=[task_queue])

    def get_message(body, message):
        print("receive message: %s" % body)
        # message.ack()

    # 消费者
    with Connection(url) as conn:
        with conn.channel() as channel:
            consumer = Consumer(channel, queues=task_queue, callbacks=[get_message, ], prefetch_count=10)
            consumer.consume(no_ack=True) 
开发者ID:DataIntegrationAlliance,项目名称:data_integration_celery,代码行数:24,代码来源:check.py

示例3: connect

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def connect(self, exchange, channel):  # pragma: no cover
        """
        Readies the StorageNotify for publishing notification messages by
        setting up a kombu.Producer.

        :param exchange: The exchange for publishing notifications.
        :type exchange: kombu.Exchange
        :param channel: The channel to bind to.
        :type channel: kombu.transport.base.StdChannel
        """
        name = self.__class__.__name__
        self.logger.debug('Connecting {}'.format(name))

        self._queue = kombu.Queue(exchange=exchange, channel=channel)
        self._queue.declare()

        self._producer = kombu.Producer(channel, exchange) 
开发者ID:projectatomic,项目名称:commissaire,代码行数:19,代码来源:notify.py

示例4: producer

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def producer(self):
        return Producer(self.connection) 
开发者ID:KubeOperator,项目名称:KubeOperator,代码行数:4,代码来源:logger.py

示例5: send

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def send(self):

        try:
            # Connection
            conn = Connection(self.broker)

            # Channel
            channel = conn.channel()

            # Exchange
            task_exchange = Exchange(self._exchange_name,
                                     type=self._queue_type)

            # Queues
            if self._queue_name:
                queue = Queue(name=self._queue_name, channel=channel,
                              exchange=task_exchange,
                              routing_key=self._routing_key)
                queue.declare()

            # Producer
            producer = Producer(exchange=task_exchange, channel=channel,
                                routing_key=self._routing_key)

            # Send message
            for message in self._msgs:
                serialized_message = json.dumps(message, ensure_ascii=False)
                producer.publish(serialized_message)

            conn.close()

        except Exception, e:

            self.log.error(
                u'QueueManagerError - Error on sending objects from queue.')
            self.log.debug(e)
            raise Exception(
                'QueueManagerError - Error on sending objects to queue.') 
开发者ID:globocom,项目名称:GloboNetworkAPI,代码行数:40,代码来源:queue_manager.py

示例6: get_producer

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def get_producer(self, handler, routing_key=None):
        return kombu.Producer(
            handler.channel,
            exchange=handler.exchanges[handler.exchange],
            routing_key=handler.routing_key if routing_key is None else routing_key,
            serializer='json'
        ) 
开发者ID:depop,项目名称:celery-message-consumer,代码行数:9,代码来源:base.py

示例7: sender

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def sender(url):
    logger.info("start sender")
    with Connection(url) as conn:
        with conn.channel() as channel:
            # producer = Producer(channel)
            producer = channel.Producer()

            while True:
                message = time.strftime('%H:%M:%S', time.localtime())
                producer.publish(
                    body=message,
                    retry=True,
                    exchange='celery',
                    routing_key='rkeytest'
                )
                logger.info('send message: %s' % message)

                while True:
                    # 检查队列,以重新得到消息计数
                    queue = channel.queue_declare(queue='queuetest', passive=True)
                    messageCount = queue.message_count
                    logger.info('messageCount: %d' % messageCount)
                    if messageCount < 100:
                        time.sleep(0.5)
                        break
                    time.sleep(1) 
开发者ID:DataIntegrationAlliance,项目名称:data_integration_celery,代码行数:28,代码来源:check.py

示例8: send

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def send(self, topic, message):
        """Publishes a pulse message to the proper exchange."""

        if not message:
            Log.error("Expecting a message")

        message._prepare()

        if not self.connection:
            self.connect()

        producer = Producer(
            channel=self.connection,
            exchange=Exchange(self.settings.exchange, type='topic'),
            routing_key=topic
        )

        # The message is actually a simple envelope format with a payload and
        # some metadata.
        final_data = Data(
            payload=message.data,
            _meta=set_default({
                'exchange': self.settings.exchange,
                'routing_key': message.routing_key,
                'serializer': self.settings.serializer,
                'sent': time_to_string(datetime.datetime.now(timezone(self.settings.broker_timezone))),
                'count': self.count
            }, message.metadata)
        )

        producer.publish(jsons.scrub(final_data), serializer=self.settings.serializer)
        self.count += 1 
开发者ID:mozilla,项目名称:jx-sqlite,代码行数:34,代码来源:pulse.py

示例9: _producer

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def _producer(self):
        return self._connection().Producer(exchange=self._exchange(),
                                           **self.producer_options) 
开发者ID:miguelgrinberg,项目名称:python-socketio,代码行数:5,代码来源:kombu_manager.py

示例10: inject

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def inject(self, exchange, routing_key, payload):
        self.__logs.irl.debug("Injecting a test AMQP message: ex=%s, rk=%s, payload=%s", exchange, routing_key, payload)
        if not isinstance(exchange, Exchange):
            exchange = Exchange(exchange, 'topic')
        prod = Producer(self.__connection, exchange=exchange, routing_key=routing_key)
        prod.publish(payload) 
开发者ID:RackHD,项目名称:RackHD,代码行数:8,代码来源:amqp_source.py

示例11: test_helper_sync_send_msg

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def test_helper_sync_send_msg(self, exchange, ex_rk, send_rk, payload):
        ex = Exchange(exchange, 'topic')
        queue = Queue(exchange=ex, routing_key=ex_rk + '.*', exclusive=True, channel=self.__connection)
        queue.declare()
        prod = Producer(self.__connection, exchange=ex, routing_key=send_rk)
        prod.publish(payload)
        return queue 
开发者ID:RackHD,项目名称:RackHD,代码行数:9,代码来源:amqp_source.py

示例12: setUp

# 需要导入模块: import kombu [as 别名]
# 或者: from kombu import Producer [as 别名]
def setUp(self):
        super(BaseRetryHandlerIntegrationTest, self).setUp()

        # NOTE:
        # must be a real rabbitmq instance, we rely on rabbitmq
        # features (dead-letter exchange) for our retry queue logic
        self.connection = kombu.Connection(
            settings.BROKER_URL,
            connect_timeout=1,
        )
        self.connection.ensure_connection()
        self.connection.connect()
        self.channel = self.connection.channel()

        self.handler = AMQPRetryHandler(
            self.channel,
            routing_key=self.routing_key,
            queue=self.routing_key,
            exchange=self.exchange,
            queue_arguments={},
            func=lambda body: None,
            backoff_func=lambda attempt: 0,
        )
        self.handler.declare_queues()

        queues = [
            self.handler.worker_queue,
            self.handler.retry_queue,
            self.handler.archive_queue,
        ]
        for queue in queues:
            queue.purge()

        self.archive_consumer = kombu.Consumer(
            channel=self.channel,
            queues=[self.handler.archive_queue],
            callbacks=[self.handle_archive]
        )

        for consumer in [self.handler.consumer, self.archive_consumer]:
            consumer.consume()

        self.producer = kombu.Producer(
            self.channel,
            exchange=self.handler.exchanges[self.handler.exchange],
            routing_key=self.routing_key,
            serializer='json'
        )
        self.archives = [] 
开发者ID:depop,项目名称:celery-message-consumer,代码行数:51,代码来源:base.py


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