Задать вопрос
@hckn

Очереди, процессы, задачи/таски — что и когда использовать?

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

Вообщем, примерная цель - иметь заранее созданные задачи на сервере (фактически, обычные функции), и иметь возможно программно их создавать/удалять через ГУИ интерфейс (т.е. по АПИ).

Мой стек это Node, поэтому выбар пал на библиотеку Bull.

И там все работает так:
создается очередь >> создается процесс >> создается задача

const loadBalancerQueue = new Queue('loadbalancer')
loadBalancerQueue.process('requestProfile', 100, requestProfile)
loadBalancerQueue.add('jobA', data, opts)


Вроде ничего сложного, но совершенно непонятно как строить само приложение?

К примеру, у меня есть функции (т.е. это фактически задачи конечные которые я хочу выполнять)

1. tweetMonitor() - мониторинг определенного профиля Твиттер (сюда динамически для каждой задачи передаю параметр)
2. resizeImage() - загрузка и ресайз в несколих размерах картинки
3. convertVideo() - конвертация загруженного видео

Как быть?
Для каждого вида задачи создавать свою очередь?
Тогда проблема - у Bull нету апи для полученяи списка всех очередей (я не нашел)
Или один сервер/инстанс Ноды это одна очередь? И под каждый тип создавать процесс?
Или это все один процесс, а в задачах уже указывать тип?

Заодно посоветуйте плз теории на эту тему. Я это совершенно упустил из виду (но я и сам-то изначально фронтендер-самоучка, так что...)
  • Вопрос задан
  • 386 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы