Я пишу крошечное приложение Sinatra и хочу разместить его на Heroku для простоты.Но у меня есть задача, которая удаляет некоторые сайты и добавляет некоторые данные в мою базу данных каждый час.В настоящее время это просто написано как скрипт ruby, который должен быть выполнен.У Heroku есть рейк-работа , основанная на рейке.Теперь, если бы это было приложение rails, я мог бы легко это сделать, но я хочу избежать беспорядка из-за чего-то такого простого.Или мне нужно также установить грабли с моим приложением?
Спасибо.
Эрик
Вам нужен Rakefile, такой как:
desc "This task is called by the Heroku cron add-on" task :cron do # Do something end
Heroku периодически запускает рейк-крон в вашем приложении в зависимости от того, выбрал ли вы надстройку cron для ежечасного или ежедневного.
Вам нужно проверить Руфуса.Руфус твой друг.Rufus будет вашим хронтабом, пока ваше приложение загружено.
Я не пробовал этот материал на Heroku, но попробуйте и ответьте нам.
http://codex.heroku.com/past/2010/4/15/rufus_scheduler_for_my_tiny_sinatra_apps/
Почему Руфус классный?Хорошо, проверьте это, это чисто:)
$ sudo gem install rufus-scheduler require 'rubygems' require 'rufus/scheduler' scheduler = Rufus::Scheduler.start_new scheduler.cron '00 23 30 * *' do # Run every 30 days at 23h00m # ...your magic code goes here... end
Выглядело снова и похоже, что я бросил оружие по этому вопросу.
Для приложений, которые не являются Rails, нужно просто создать Rakefile и поставить задачу там.
Rakefile
Надеюсь, что это помогает другим людям.
Ура!