Что такое рабочий в рубинах / рельсах?

17

Я иду из мира Java и продолжаю слышать этот термин «рабочий» в мире рубинов / рельсов. Что это? поток?

    
задан Kamilski81 26.04.2012 в 19:01
источник

3 ответа

29

Зависит от контекста.

Работник обычно является процессом, который выполняется за пределами цикла запроса заявки. Библиотеки Ruby, такие как resque и delayed_job обычно используются для управления очередями работников.

С другой стороны, если мы говорим о веб-серверах, слово «рабочий» иногда используется взаимозаменяемо с потоками или процессами (например, nginx или apache «работники»).

    
ответ дан Damien Wilson 26.04.2012 в 19:22
источник
7

Часто в мире «Rails» рабочий ссылается на систему типа очереди с приоритетом, которая имеет отдельные процессы, выполняющие задачи для выполнения вне цикла приложения. Одна из самых популярных из этих систем - DelayedJobs . Это использует миграцию базы данных для добавления таблицы для хранения задач, которые должны выполняться рабочим процессом. Затем вы можете настроить любое количество рабочих процессов, которые будут проверять таблицу очередей DelayedJobs и выполнять сериализованную задачу. С DelayedJobs у вас есть не только возможность устанавливать приоритет для разных задач, но также и временные рамки для выполнения задачи, например. отправьте электронное письмо через час.

Надеюсь, это поможет, / Salernost     

ответ дан salernost 26.04.2012 в 19:18
источник
3

Сервер, на котором работает ваше приложение rails, использует работников для выполнения всех необходимых действий приложения. Он отправляет электронную почту, запускает запросы, выполняет вычисления и т. Д. Количество необходимых вам сотрудников зависит от того, сколько трафика и вычислений требуется вашему веб-приложению.     

ответ дан Josh 26.04.2012 в 19:09
источник