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

20

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

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

3 ответа

30

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

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

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

    
ответ дан Damien Wilson 26.04.2012 в 19:22
источник
  • на веб-серверах, являются отдельными потоками или процессами рабочих? –  Kamilski81 27.04.2012 в 06:43
  • @ Kamilski81 на веб-серверах и используя изложенные здесь решения, это будут отдельные процессы. Например, с помощью delayed_job вы можете запускать много разных рабочих процессов, которые могут вывести из базы следующую задачу с наивысшим приоритетом. Благодаря этой архитектуре многие люди запускают дополнительный процесс мониторинга, используя что-то вроде Бога или BluePill. См. Здесь больше: ruby-toolbox.com/categories/server_monitoring –  salernost 30.04.2012 в 14:35
7

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

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

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

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