Про очередь на сервере
👨💻 Вчерашний рефакторинг, изменивший логику сбора вакансий с параллельного на последовательное выполнение, натолкнул меня на мысль. Если несколько пользователей запустят проверку откликов одновременно, это может перегрузить сервер.
⏳ Чтобы этого избежать, неплохо было бы ждать завершения работы проверки одного пользователя и запускать следующего, как говорится, по очереди. Очередь - это структура данных, в которой элементы добавляются в конец и удаляются из начала. Это называется принципом FIFO (First In, First Out), что означает: первым пришёл — первым ушёл.
👥Аналогию можно провести с обычной очередью, в которой люди стоят в ожидании своей очереди. Первый человек, который пришел в очередь, будет первым обслужен, а следующий - вторым, и так далее.
💻 Для реализации подобной логики существует библиотека Bull. Она использует базу данных Redis в качестве хранилища для очередей. Bull сериализует объект из полученных данных в JSON-строку. Когда рабочий процесс Bull берет задачу из очереди, он десериализует JSON-строку обратно в объект и передает его в обработчик.
🚀 Итак, я пришел к выводу: скрипты, которые выполняются быстро и не требуют больших ресурсов, можно выполнять параллельно, например, авторизацию.
⏱️А вот скрипты, которые требуют больших ресурсов или занимают много времени, лучше отправлять в очередь с помощью Bull. Это позволит контролировать количество одновременно выполняемых задач и предотвратить перегрузку сервера.
📊 #статистика День 817 == 1319 час в IT
Post #1093
1.39K

- 🔥 5
- 🤡 2