Проектирование микросервиса: долгие задачи
Вставка
- Опубліковано 28 вер 2024
- Долгими задачами мы будем называть длительную работу функции, которую слишком долго ждать. В таких случаях часто применяют фоновую обработку. С точки зрения архитектуры приложения, подобный функционал реализуется с помощью очереди (соответствующая таблица в базе данных, Apache Kafka, RabbitMQ). Схематические примеры вы сейчас видите на экране. Архитектура схемы достаточно проста: мы получаем от пользователя запрос и сразу возвращаем ему статус ответа. А обработку очереди осуществляют в фоновом режиме, например, с помощью CRON запускают скрипт. Кстати, вариант с Kafka часто применяют в случаях экстремальных нагрузок, когда СУБД не может справляться с потоком запросов.
У меня задача простенькая. обрабатывающий клиент делает запрос к бд FOR UPDATE SKIP LOCKED и пока клиент работает другой клиент к этой записи не имеет доступа.
А разве тут не надо было бы указать что надо использовать горутины в Go?