@Meefril

Как реализовать очередь в node js?

Каким образом было бы правильнее сделать очередь?
Юзер отправляет запрос(видео) на боту -> Сервер это видео обрабатывает(Он может обрабатывать только 1 видео за раз и преступает к следующему лишь тогда, когда завершил предыдущее) -> Отправляет измененное видео юзеру

Сейчас я сделал так:

Создал массив queue, что состоит из объектов { task_data, user_id }
Создал флажок is_working

Асинхронная функция editVideo запускается каждую секунду через setInterval. Внутри неё
if(queue.length > 0 && !flag_working){
        flag_working = true
        data = queue.shift()
        ...working....
        sendEditedVideo()
       flag_working = false
}


Как правильнее было бы реализовать это?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 3
yarkov
@yarkov
Помог ответ? Отметь решением.
Как правильнее было бы реализовать это?

Не изобретать велосипед, а погуглить готовые решения для очередей.
Беглый поиск:
https://www.npmjs.com/package/queue
https://github.com/bee-queue/bee-queue
https://levelup.gitconnected.com/how-to-implement-...
Ну и всякие там rabbitmq и т.п.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Если в стеке технологий у вас стоит Redis - то можно его использовать для очереди
https://redis.com/redis-best-practices/communicati...
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
https://github.com/OptimalBits/bull
https://optimalbits.github.io/bull/

Используйте это или посмотрите, как реализована библиотека.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект