Встречается на собеседованиях • сегодня
Как реализовать гарантированную отправку заявки с базы данных в очередь
Для гарантированной отправки заявок из БД в очередь можно использовать паттерн Outbox. Основные шаги:
- Запись заявки в БД и в таблицу-оутбокс в одной транзакции:
python
with db.transaction():
save_application(application)
add_to_outbox(application.id, 'queue_name')- Отдельный процесс периодически проверяет оутбокс и отправляет сообщения:
python
def process_outbox():
messages = get_unsent_messages()
for msg in messages:
try:
queue.send(msg)
mark_as_sent(msg.id)
except Exception:
log_error()Ключевые моменты:
- Атомарность записи в БД и оутбокс
- Идемпотентность обработки (повторная отправка не должна дублировать эффект)
- Механизм подтверждения доставки
- Возможность повторной обработки при сбоях
Для надежности можно добавить dead letter queue для проблемных сообщений и мониторинг отставания оутбокса.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы