Pull to refresh

Comments 12

Знакомо. Недавно тоже столкнулся с необходимостью написать обработчик очереди задач, и тоже выбрал node.js. Правда как саму очередь использую beanstalkd, а демон на node.js забирает из нее задачи и запускает на выполнение процессы php (используя spawn). Асинхронность в данном случае оказалась очень кстати. Обращения к beanstalkd тоже через таймер, правда через setInterval. Пока вроде память не течет и стабильность устраивает.
за информацию по beanstalkd — спасибо… наверно к чему-то подобному придем в будущем.
Первая попытка была на gearman, который тоже неплох, но у gearman и beanstalkd все же есть отличия по функционалу. Для beanstalkd есть отличный клиент для node.js fivebeans -> https://www.npmjs.org/package/fivebeans, тут даже есть реализация воркеров. Есть еще одна очередь для node.js — http://learnboost.github.io/kue/, но в проект не совсем подошла.
rabbitmq(или другой, дело вкуса)+php+supervisor не проще? пару месяцев аптайм, полет стабильный. бонус — никакого левого кода для поддержания/запуска процессов…
Дело в том, что все воркеры внутри достаточно разные, только выдают результат в обобщенном виде + сами генерируют некие команды\сообщения. Чистый php вариант тоже тестировали, но стабильной работы не удалось добиться.
Ну у нас на один воркер может выполнять различные команды, тут важно следить только за тем чтоб после ее выполнения не оставалось следов, плюс перезапускать сам воркер через каждых N команд. Поднимать окружение на выполнение каждой отдельной команды — как-то слишком… Хотя, в любом случае, все конечно же зависит от исходных данных (архитектуры), я верю что вы выбрали то что больше удовлетворяло ваши потребности :)
Согласен, выбор решения зависит от особенности воркер процессов
Смотрю на код executor, connector и этот код мне не нравится. Куча функций внутри функций. Вы понимаете, что все вложенные функции будут создаваться каждый раз при вызове функции, которая их содержит?
Резануло глаз: «Но для сбора «лайков», это должен быть daemon, который работает постоянно. Наверно, не самая типичная задача для Node.js — про специфику реализации и некоторые подводные камни, читаем далее.»

Как это не самая типичная? Ровно наоборот, насколько я знаю node.js
Sign up to leave a comment.