Повторная задача Rake с использованием отложенного задания

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

Я хочу запускать "rake ts:reindex RAILS_ENV=production" каждые 5 минут, но не знаю, с чего начать. Мне действительно нечего больше сказать об этом, потому что я ОЧЕНЬ неопытен в этой области разработки рельсов.


person jim    schedule 28.05.2010    source источник
comment
все ответы были великолепны ниже, но в итоге я выбрал гем всякий раз, когда все было связано вместе в моей программе rails. Всем спасибо!   -  person jim    schedule 29.05.2010


Ответы (3)


Используйте гем Whenever, чтобы запланировать выполнение задачи переиндексации rake или любой другой задачи rake каждые 5 минут.

Это позволяет очень легко создавать задания Cron, подобные этим.

person Rishav Rastogi    schedule 28.05.2010
comment
Что делать, если вы не хотите использовать рейк, чтобы избежать запуска рельсов каждый раз, когда вам нужно запустить диджея? - person tesserakt; 20.07.2010

Я бы не советовал использовать переиндексацию Thinking Sphinx каждые 5 минут. Если вы действительно хотите, поместите что-то вроде этого в ваш /etc/crontab:

*/5 * * * * your_username cd /path/to/rails/root && rake ts:reindex RAILS_ENV=production
person Eimantas    schedule 28.05.2010

Думая, что Sphinx (при условии, что вы используете его из-за упоминания ts:reindex) имеет внутренние перехватчики для использования отложенного задания для индексации. Вы ознакомились с отложенным дельта-индексированием? Вы, вероятно, в конечном итоге будете использовать crontab для фактического запуска периодической дельта-переиндексации, как упоминал Эймантас.

person x1a4    schedule 28.05.2010
comment
Но добавление дельта-индексации стоит около 50 долларов в героку! - person MaicolBen; 24.07.2015
comment
Что ж, этому ответу 5 лет, но я не использую и не рекомендую Heroku по таким причинам. - person x1a4; 25.07.2015