Esempio n. 1
0
        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.')
Esempio n. 2
0
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,
Esempio n. 3
0
# -*- 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):
        """
Esempio n. 4
0
                         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.')