2015-02-24 3 views
0

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

Этот проект отправляет письма в фоновом режиме по определенным событиям с использованием «рабочих». В частности, есть одно электронное письмо, которое отправляется с использованием команды rake. Из того, что я могу сказать, нет никакой разницы с электронными письмами, отправленными на рабочих, и мне кажется, что это мог быть рабочий.

В чем отличие использования пользовательской задачи rake над рабочим? Что вы можете сделать с помощью рейк-задачи, которую рабочий не может сделать?

ответ

1

Задачи рейка обычно вводятся вами в командной строке. Рабочие задания обычно инициируются запущенным приложением. Затем фоновый работник выполняет задание в соответствующий момент и запускает его.

В зависимости от задачи у вас есть возможность использовать оба варианта, разница, вероятно, заключается в том, кто должен это делать. Не очень хорошая идея запустить rake из приложения, но это возможно (через команду оболочки).

+0

Невозможно запланировать задачу рейка, а затем будет эквивалентно рабочему заданию? – StackOverflower

+0

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

Смежные вопросы