grabbee
@grabbee

Есть ли какой-то инструмент выполнения запросов в базу данных с отсрочкой?

Например для предупреждения частых запросов можно мекэш использовать, и проверять когда был до этого запрос и сколько времени прошло. Это уменьшит общее количество запросов. Но вот если наоборот сделать.
* Например приходит запрос, и мы его в базу не отправляем, а как бы запоминаем
* Приходи такой же запрос, и мы к тому что в памяти, обновляем метку времени и всё равно не отправляем в базу
* А когда таймер к примеру 5 минут весь прошел и повторных запросов не было, то мы закидываем этот запрос на обработку либо в базу либо в обработчик.

Это очередями решается с отложенной обработкой? RabbitMQ например. Только так?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@foterio
Просто пихайте все в очередь. Затем два пути:
1. Опрашиваем по таймеру. Каждые пять минут consumer подключается к очереди забирает все, что там есть и затем сохраняет в базу весь этот batch.
2. Consumer берет из очереди по N сообщений, и вставляет в базу batch.

И там и там есть гибкость. Сегодня каждые пять минут, а в вечер пятницы-субботы, когда условно нагрузки выше (HoReCa, Delivery-сегмент и прочее), можно изменить на каждые три минуты. Тоже самое и по сообщениям. Сегодня N = 10, а завтра N = 50.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы