Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Асинхронное получение и обработка сообщений из MQ

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

VasyOK



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Need help)
 
Есть код который получает сообщения из очереди сообщений RabbitMQ и должен асинхронно запускать функцию для их обработки. Но почему-то он работает последовательно.
 

Код:
 
first_message = False
 
async def consuming():
 
    global service_name, service_uuid, consuming_channel, demons_server_ip
 
    connection = await aio_pika.connect_robust(
        "amqp://mq_admin:123@10.128.0.1/"
    )
    async with connection:
        queue_name = service_name + '.' + service_uuid
 
        channel: aio_pika.abc.AbstractChannel = await connection.channel()
        queue: aio_pika.abc.AbstractQueue = await channel.declare_queue(queue_name,auto_delete=True)
 
        queue = await channel.declare_queue(queue_name,auto_delete=True)
        async with queue.iterator() as queue_iter:
            async for message in queue_iter:
                data = message.body
                await callback(data)
 
 
async def callback(body):
    global first_message
 
    if first_message == False:
        body = json.loads(body)
        first_message = True
        await asyncio.sleep(5)
 
        # Здесь через 5 секунд записываем первое сообщение в файл
        ''''''
    else:
        print(body)
     
 
 

 
Хочется добиться следующей логики: приходит первое сообщение, через 5 сек оно должно записаться в файл, а второе и последующие сообщения должны отобразиться на экране не дожидаясь пока первое запишется.
 
Сейчас последующие сообщения начинают отображаться только через 5 сек.
 
Как данную конструкцию скорректировать под необходимую логику?

Всего записей: 403 | Зарегистр. 13-12-2003 | Отправлено: 17:43 22-01-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VasyOK
Python

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:17 22-01-2023
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Асинхронное получение и обработка сообщений из MQ


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru