Exemplo n.º 1
0
def publish(message):
    """ Publish message to the indexing queue """
    EXCHANGE = "crawler.vehicles"
    QUEUE = "indexer_queue"
    q = MessageQueue(EXCHANGE, QUEUE)
    ROUTING_KEY = "indexer.index"
    q.publish(ROUTING_KEY, message)
    def setup_class(self):
        self.client = Redis()

        self.mq = MessageQueue(self.client, "email_queue")

        self.mq.add_message("*****@*****.**")
        self.mq.add_message("*****@*****.**")
        self.mq.add_message("*****@*****.**")
Exemplo n.º 3
0
    def setUp(self):
        self.client = Redis(decode_responses=True)

        self.stream_key = "test_message_queue"
        self.q = MessageQueue(self.client, self.stream_key) 

        self.message = {"name":"peter", "age":"36", "location":"UK"}
        
        self.tearDown()
Exemplo n.º 4
0
    def setUp(self):
        self.client = Redis(decode_responses=True)
        self.client.flushdb()

        self.mq = MessageQueue(self.client, "mq")

        self.msg = "hello world"

        self.blocktime = 1
Exemplo n.º 5
0
    def setUp(self):
        self.client = Redis(decode_responses=True)

        self.stream = "test_stream"
        self.group = "test_group"


        # objs
        self.q = MessageQueue(self.client, self.stream)
        self.g = Group(self.client, self.stream, self.group)

        # create a empty stream key
        self.msg_id = self.q.add_message({"k":"v"})
        self.q.remove_message(self.msg_id)
Exemplo n.º 6
0
def should_handle_chunks_of_data_stream_sliced_randomly():
    stream = [
        bytes('7|U|46|17\n', 'UTF-8'), b'6|U|46|68\n3|P|46|68\n4|F',
        b'|4|68\n5|P|', b'5|68\n1', b'|F|46|49\n2|U|46|68\n'
    ]
    queue = MessageQueue()
    for chunk in stream:
        queue.push_data_stream(chunk)
    prev_seq = 0
    for expected in [
            b'1|F|46|49', b'2|U|46|68', b'3|P|46|68', b'4|F|4|68', b'5|P|5|68',
            b'6|U|46|68', b'7|U|46|17'
    ]:
        seq, data = queue.pop()
        assert expected == data
        assert seq >= prev_seq
    assert not queue.queue
Exemplo n.º 7
0
def should_block_for_next_item():
    N = 5
    queue = MessageQueue()
    queue._push(N, 'data5')
    consumed = []
    consumer = Thread(target=consume, args=[queue, consumed])
    consumer.start()
    queue._push(1, "data1")
    consumer.join()
    assert ['data1'] == consumed
    queue._push(4, 'data4')
    consumer = Thread(target=consume, args=[queue, consumed])
    consumer.start()
    consumer.join(.3)  #wait
    assert consumer.is_alive()  #Thread is blocked
    queue._push(2, 'data2')
    consumer.join()
    assert ['data1', 'data2'] == consumed
    queue._push(3, 'data3')
    consumer = Thread(target=consume, args=[queue, consumed, 3])
    consumer.start()
    consumer.join()
    assert consumed == ['data1', 'data2', 'data3', 'data4', 'data5']
Exemplo n.º 8
0
async def main():
    logging.info("-- Starting message queue... To exit press CTRL+C")
    mq = MessageQueue(handler=mq_handler)

    await mq.connect()
    await mq.listen()
Exemplo n.º 9
0
from message_queue import MessageQueue
import downloader as dwn 

EXCHANGE = "crawler.vehicles"
QUEUE = "crawler_queue"
queue = MessageQueue(EXCHANGE, QUEUE)

## Starting consumer 
queue.start_consumer(dwn.process_message) 


## Expected message format 
# {
#     "vehicle_thumbnails": [
#         "https://srv1.sbtjapan.com/photo/F0000/3000/MF3332/f.jpg?var=1507107710",
#         "https://srv1.sbtjapan.com/photo/F0000/3000/MF3332/r.jpg?var=1507107710",
#         "https://srv1.sbtjapan.com/photo/F0000/3000/MF3332/2.jpg?var=1507107710",
#         "https://srv1.sbtjapan.com/photo/F0000/3000/MF3332/3.jpg?var=1507107710"
#     ],
#     "_values": {
#         "vehicle_drive": "2WD",
#         "vehicle_body": "Hatchback",
#         "vehicle_title": "TOYOTA RAUM 2006/9 CBA-NCZ20",
#         "vehicle_price_cif": "N",
#         "vehicle_accessories": "",
#         "vehicle_engine": "1,490cc",
#         "internal_id": "SBT-MF3332",
#         "vehicle_make": "TOYOTA RAUM 2006/9 CBA-NCZ20",
#         "vehicle_mileage": "82,000",
#         "vehicle_year": "2006/9",
#         "vehicle_doors": "5",
Exemplo n.º 10
0
async def startup_tasks(app):
    mq = MessageQueue()
    await mq.connect()
    app['mq'] = mq
Exemplo n.º 11
0
#!/usr/bin/python
import socket
from threading import Thread
from event_handler import EventHandler
from message_queue import MessageQueue
from user_network import UserNetwork

users = {}
queue = MessageQueue()
event_handler = EventHandler(users, UserNetwork())


def bind_server(port, queue_len=1):
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversocket.bind(('localhost', port))
    serversocket.listen(queue_len)
    return serversocket


def event_listener(port=9090):
    serversocket = bind_server(port)
    data = None
    clientsocket = None
    while True:
        try:
            if not data:
                if clientsocket:
                    print(
                        "Event stream has stopped. Press Ctrl-C to stop the server"
                    )
                    clientsocket.close()