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}'
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(