Esempio n. 1
0
def post_messages(msg_group, count=1000, sqs_uri=sqs_url()):
    client = sqs_client()
    for _ in range(count):
        msg = create_actual_msg()
        _r = client.send_message(QueueUrl=sqs_uri,
                                 MessageGroupId=msg_group,
                                 MessageBody=(json.dumps(msg)),
                                 MessageDeduplicationId=msg['opportunity_id'])

    return f'{count} messages posted to customer group {msg_group}'
Esempio n. 2
0
import sys
import json
import time
import logging
import asyncio as aio
from functools import partial
from concurrent.futures import ThreadPoolExecutor

from essentials import sqs_client, sqs_url

sqs_uri = sqs_url()
client = sqs_client()
EXC = ThreadPoolExecutor(max_workers=16)


def queue_poller(**kwargs):
    client = kwargs.get('client', None)
    sqs_uri = kwargs.get('sqs_uri', None)
    response = client.receive_message(
        QueueUrl=sqs_uri,
        MaxNumberOfMessages=10,
    )
    return response.get('Messages', [])


async def process_msg(client, msg, queue_uri, loop, exc=EXC):
    await aio.sleep(0.001)
    receipt_handle = msg['ReceiptHandle']
    await loop.run_in_executor(
        exc,
        partial(