2010-10-06 10 views
5

के साथ हेरोकू में क्रॉन नौकरी कैसे चलाएं, मैं एक छोटा सीनात्रा ऐप लिख रहा हूं, और मैं इसे सादगी के लिए Heroku पर होस्ट करना चाहता हूं। लेकिन, मेरे पास एक ऐसा कार्य है जो कुछ साइटों को स्क्रैप करता है और हर घंटे मेरे डेटाबेस में कुछ डेटा जोड़ता है। वर्तमान में यह सिर्फ रूबी लिपि के रूप में लिखा गया है जिसे निष्पादित करने की आवश्यकता है। क्या Heroku है rake based cron job है। अब अगर यह एक रेल ऐप था, तो मैं आसानी से ऐसा कर सकता था, लेकिन मैं इस तरह के सरल के लिए अव्यवस्था से बचना चाहता हूं।एक सिनात्रा ऐप

क्या इससे बचने का कोई तरीका है? या क्या मुझे अपने ऐप के साथ रेक भी इंस्टॉल करना है?

धन्यवाद।

एरिक

उत्तर

10

आप की तरह एक Rakefile की जरूरत है:

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

Heroku समय-समय पर कि क्या आप का चयन किया है निर्भर करता है आपके एप्लिकेशन में रेक क्रॉन कार्यान्वित "क्रॉन ऐड-ऑन" प्रति घंटा या दैनिक होने के लिए।

1

फिर से देखा और लगता है जैसे मैं सवाल पर बंदूक कूद गया।

उन अनुप्रयोगों के लिए जो रेल नहीं हैं, केवल एक को Rakefile बनाना है और कार्य को वहां रखना है।

उम्मीद है कि यह अन्य लोगों की सहायता करेगी।

चीयर्स!

3

आपको रूफस की जांच करने की आवश्यकता है। रूफस आपका मित्र है। आपका ऐप लोड होने पर रूफस आपका क्रॉन्टाब होगा।

मैंने हेरोकू पर इस सामान को आजमाया नहीं है, लेकिन इसे आज़माएं और हमें जवाब दें।

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

दिखता है, अच्छा। दुर्भाग्य से हेरोोकू अभी तक रूफस मणि का समर्थन नहीं करता है। –

+1

autch! हो सकता है कि http://github.com/javan/whenever शायद वे अपने भुगतान किए गए "क्रॉन" ऐड-ऑन के बारे में किसी भी का समर्थन नहीं करते हैं: / – include

संबंधित मुद्दे