2013-06-19 4 views
0

Я пытаюсь понять, как спроектирован и работает реск. Я знаю, что он хранит объекты JSON в Redis, но Redis - это очень быстрая база данных с ключом. Что это должно делать с параллелизмом? Является ли resque просто создавать другие системные процессы? Как? «fork» не поддерживается в Windows. Это просто порождает потоки?Ruby и Resque Concurrency

Благодаря

+0

Да, resque развивает дочерние процессы. Я не знаю, работает ли он в окнах или нет. –

+0

Вы имеете в виду системные процессы? –

+0

Да, процессы в терминах ОС –

ответ

2

Resque в основном нерестится/копирует свои рельсы окружающей среды и работает в новом процессе.

Затем он использует redis для поиска заданий, которые нужно выполнить в заданной вами очереди. Он оценивает объект (который отвечает на сообщение «выполнить»), который был найден в очереди с данными аргументами.

+0

Это может быть самый дорогостоящий подход к памяти ... –

+0

Что делать, если я использую resque вне рельсов? Это возможно? Будет ли это порождать рубиновые процессы? И как это вилка на окнах? O_o –

+0

Да, вы можете запустить его за пределы рельсов. Я не уверен, как это работает в Windows. Да, вы правы, это память дорого. Обычно вы запускаете Resque на отдельной машине, посвященной заданиям Resque. Другим другим подходом, который быстрее и меньше памяти, является Sidekiq. Вы можете попробовать: http://sidekiq.org/ – Amir