queues[0].qos(prefetch_count=self.max_size.value) #self.handler_process.start() return queues def process_message(self, body, message): #logger.info('Got message: %s', body) self.internal_queue.put(body) message.ack() if self.internal_queue.qsize() >= self.max_size.value: self.handle_queue("Callback") ##### END MAIN PROCESS ##### if __name__ == '__main__': from kombu import Connection, enable_insecure_serializers from kombu.utils.debug import setup_logging # setup root logger setup_logging(loglevel='INFO', loggers=['']) enable_insecure_serializers(choices=['pickle']) #with Connection('amqp://*****:*****@localhost//') as conn: with Connection('amqp://*****:*****@rabbitmq-server//') as conn: try: worker = Worker(conn, max_size=10000, queue_time=15) worker.run() except KeyboardInterrupt: worker.stopWorkerProcess() print('Done.')
from kombu import Connection, Exchange, Queue, uuid from tase.my_logger import logger from tase.telegram.tasks.base_task import BaseTask from tase.utils import prettify from decouple import config tase_telegram_exchange = Exchange('tase_telegram_exchange', 'direct', durable=True) tase_telegram_queue = Queue('tase_telegram_queue', exchange=tase_telegram_exchange, routing_key='tase_telegram_queue') callback_queue = Queue(uuid(), auto_delete=True) kombu.enable_insecure_serializers() def client_task(task: BaseTask, target_queue: 'Queue'): logger.info(f"@pyrogram_task_call: {prettify(task)}") # connections with Connection( config('RABBITMQ_URL'), userid=config('RABBITMQ_DEFAULT_USER'), password=config('RABBITMQ_DEFAULT_PASS'), ) as conn: # produce producer = conn.Producer(serializer='pickle') producer.publish(body=task, exchange=tase_telegram_exchange,
# -*- encoding: utf-8 -*- # vim: set et sw=4 ts=4 sts=4 ff=unix fenc=utf8: # Author: Binux<*****@*****.**> # http://binux.me # Created on 2015-05-22 20:54:01 import time import umsgpack from kombu import Connection, enable_insecure_serializers from kombu.serialization import register from kombu.exceptions import ChannelError from pyspider.libs.queue import Queue as BaseQueue register('umsgpack', umsgpack.packb, umsgpack.unpackb, 'application/x-msgpack') enable_insecure_serializers(['umsgpack']) class KombuQueue(object): """ kombu is a high-level interface for multiple message queue backends. KombuQueue is built on top of kombu API. """ Empty = BaseQueue.Empty Full = BaseQueue.Full max_timeout = 0.3 def __init__(self, name, url="amqp://", maxsize=0, lazy_limit=True): """
callbacks=[self.process_message])] queues[0].qos(prefetch_count=self.max_size.value) #self.handler_process.start() return queues def process_message(self, body, message): #logger.info('Got message: %s', body) self.internal_queue.put(body) message.ack() if self.internal_queue.qsize() >= self.max_size.value: self.handle_queue("Callback") ##### END MAIN PROCESS ##### if __name__ == '__main__': from kombu import Connection, enable_insecure_serializers from kombu.utils.debug import setup_logging # setup root logger setup_logging(loglevel='INFO', loggers=['']) enable_insecure_serializers(choices=['pickle']) #with Connection('amqp://*****:*****@localhost//') as conn: with Connection('amqp://*****:*****@rabbitmq-server//') as conn: try: worker = Worker(conn, max_size=10000, queue_time = 15) worker.run() except KeyboardInterrupt: worker.stopWorkerProcess() print('Done.')