2010-10-06 60 views
5

我正在寫一個小小的西納特拉應用程序,我想舉辦它Heroku爲簡單起見。但是,我所擁有的是一項任務,即每隔一小時將一些站點剪下並將一些數據添加到我的數據庫中。目前這只是寫成需要執行的ruby腳本。 Heroku有什麼是rake based cron job。現在,如果這是一個軌道應用程序,我可以很容易地做到這一點,但我想避免這樣簡單的事情混亂。如何運行的Heroku cron作業,與西納特拉應用

有沒有辦法避免這種情況?或者我必須安裝耙和我的應用程序?

謝謝。

埃裏克

回答

10

你需要一個Rake文件,如:

desc "This task is called by the Heroku cron add-on" 
task :cron do 
# Do something 
end 

的Heroku定期在您的應用程序取決於您是否選擇執行耙cron中的「cron的附加」每小時或每天。

1

再次看了,看起來像我跳過槍的問題。

對於非Rails應用程序,一個只是要創建一個Rakefile並把任務那裏。

希望這有助於其他人。

乾杯!

3

您需要檢查魯弗斯。魯弗斯是你的朋友。當您的應用程序加載時,Rufus將成爲您的crontab。

我沒有嘗試在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 
+1

外貌,良好。不幸的是,Heroku還不支持Rufus的寶石。 – 2010-10-07 16:07:26

+1

autch!也許http://github.com/javan/whenever可能他們不支持任何關於他們支付的「cron」插件:/ – include 2010-10-19 13:02:57