TGViewer
Dev Easy Notes Dev Easy Notes @dev_easy_notes · 2.91K subscribers
Post #575 2.05K
Что такое Task Queue?

В мобильной разработке бывает такая задача что нужно сделать какую-то работу в фоне. При этом нельзя просто взять и сделать ее в отдельном потоке, т.к процесс приложения может быть неожиданно прибит, нужна гарантия выполнения.

Для этого в мобильных системах есть специальные механизмы WorkManager в Android или BGTaskScheduler в iOS. Концептуально одинаковая идея, прописываем логику, задаем условия когда нужно сделать и затем система запустит эту задачу. Ну или не запустит, мобильная разработка хуле.

Ровно такие же задачи появляются и в бэкенд части. Нужно сделать после запроса какую-то работу, ассинхронно, например письмо отправить. Во время запроса ты это делать не будешь, нужно обрабатывать ретраи, ошибки, таймауты – запрос долгий получится. При этом мы не можем просто взять и запустить это в отдельном Executor ведь инстанс приложения также может быть неожиданно прибит. Сюда еще и накладываются приколы, что мы не можем контролировать нагрузку и может сложится что все задачи будут только на одном инстансе.

В итоге нужно сделать аналог WorkManager но на бэке, задачу нужно не потерять и сделать так, чтобы нагрузка распределялась равномерно. Для решения такой задачи есть Task Queue.

Суть в том, что мы сначала сохраняем данные для выполнения задачи в базу. Этим мы уже контролируем что задачу мы не потеряем. Затем отправляем событие в какую-то очередь часто это redis, но также используют Rabbit MQ или kafka. Далее есть воркер который случает очередь и берет таски на выполнение. При этом инстанс который сгенерил задачи и который ее затем исполняет может быть один и тот же.

После того как воркер сделал задачу он удаляет ее из очереди и помечает в базе как выполненную. Если упал по дороге эту таску позже возьмет другой инстанс.
  • 🔥 55
  • 🤡 11
  • 😁 3
  • ❤ 2
  • 🗿 1
More from @dev_easy_notes
  1. Sep 24, 2026На всякий случай напомню напомню, если такую хуйню видите, сразу в бан кидаете. Вы скорее…
  2. Aug 4, 2026Короче, поясню, я давно ничего не пишу, потому что заебался) возможно я скоро вернусь, как…
  3. Aug 4, 2026Post #596
  4. Apr 17, 2026Меня вот что еще дико бесит, через год я буду уже как 10 лет в индустрии и все равно, кажд…
  5. Apr 15, 2026video post
  6. Apr 9, 2026Как оценить работу модели? Часто вижу высказывания в стиле: вот новый клод стал тупее, или…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →