LINUX.ORG.RU

Выбор message queue


0

0

Тема для меня новая и есть много реализаций. Не могу выбрать подходящую. Пока только пробовал zeromq в режиме request/response, но, кажется, это не то, что нужно. Задача примерно такая: сайт (python/django) создаёт задачу и добавляет её в очередь. Задача вида «сходить по url, вытянуть страницу и преобразовать её в изображение». Есть пул процессов (на разных машинах), которые смотрят очередь, берут задание и выполняют. После выполнения (примерно 1 до 120 секунд) возвращают результат. Хотелось бы асинхронно закидывать задачу на выполнение и получать уведомления с данными когда она выполнилась.

Прошу помочь выбрать подходящее решение.

Мы абсолютно эту же задачу решили простой расшаренной (между читателями и писателями) базой в мускуле.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

> базой в мускуле

можно решить любую задачу. И чего у народа свербит искать какие-то специализированные решения?

const86 ★★★★★
()

Zmq push/pull

anonymous
()

У zeromq много разных режимов, там были более подходящие. Какой-нить Мне он не понравился тем что нет контроля над таймаутами итп. Т.е. если тачка удалённая отваливается то всё молча висит. Хотя может я что-то не вкурил до конца и это где-то настраивается.

true_admin ★★★★★
()

Спасибо всем отписавшимся. ZMQ показался хорошей тонкой надстройкой над сокетами и всё (хотя может ошибаюсь). Сейчас, пока всё работает на одной машине, сделал времянку пулом воркеров через обычный popen и, честно говоря, удивлён его скоростью. Когда добавится ещё одна машина, планирую попробовать rabbitmq. Через базу не хочу, сообщения кажутся более логичными и гибкими.

AlexKiriukha ★★★★
() автор топика
Ответ на: комментарий от anonymous

Не думаю. Воркеры будут возвращать данные основному процессу. Кажется zmq для этого не очень подходит.

AlexKiriukha ★★★★
() автор топика
Ответ на: комментарий от AlexKiriukha

Не, это было к вопросу про таймауты. К твоей-то задаче zmq очень даже подходит. Что мешает накатать быстренько прототип на том же питоне, например, и попробовать?

anonymous
()
Ответ на: комментарий от anonymous

В данном случае архитектура с готовым брокером подойдёт лучше. Если взять zmq, то придётся писать достаточно много кода, не относящегося к решению самой задачи.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.