можно ли запускать rake-задачи с другого сервера в rails

У меня есть веб-сайт закладок, разработанный в ruby ​​on rails 3.0.7, и многие файлы rake запускаются каждый раз, чтобы получить информацию об URL-адресах в закладках и информацию о добавленных пользователях. Поскольку рейк запускается каждый раз, мой сервер включился, и его загрузка процессора составляет 100%. Мне нужно запустить мои рейк-файлы на другом сервере, сохранив все грабли в базе данных и поставив их в очередь.

Я установил один cron на отдельный сервер для обработки очереди задач rake с общими файлами. Но задачи rake все еще выполняются с сервера разработки.

Есть ли возможность запустить rake файлы на другом сервере? или Как я могу установить динамические задания cron в рельсах?

Пожалуйста помогите

Спасибо.


person Anu    schedule 20.02.2013    source источник


Ответы (1)


Похоже на работу фонового рабочего. Есть много решений для рубина.

Основная идея заключается в следующем: вы отправляете задачи в очередь (при поддержке redis/mysql/независимо). Затем другой процесс (рабочий) извлекает задачи из очереди и выполняет их в фоновом режиме, не блокируя и не затрагивая ваше приложение. Естественно, у вас может быть несколько воркеров, и они могут располагаться на других машинах.

Вот коллекция railscasts о работниках: railscasts о фоновых вакансиях.

Мой нынешний фаворит — Sidekiq.

person Sergio Tulentsev    schedule 20.02.2013