簡體   English   中英

如何使用Sinatra應用程序在Heroku中運行cron作業

[英]How to run a cron job in Heroku, with a Sinatra app

我正在寫一個很小的Sinatra應用程序,為了簡單起見,我想在Heroku上托管它。 但是,我所擁有的是一個廢棄一些網站並每小時向我的數據庫中添加一些數據的任務。 目前,這只是作為需要執行的ruby腳本編寫的。 Heroku有一個基於rake的cron工作 現在,如果這是一個rails應用程序,我可以很容易地做到這一點,但我想避免雜亂的事情這么簡單。

有辦法避免這種情況嗎? 或者我是否必須使用我的應用程序安裝rake?

謝謝。

埃里克

你需要一個Rakefile:

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

Heroku會定期在您的應用中執行rake cron,具體取決於您是選擇每小時還是每天選擇“cron add-on”。

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

我沒有在Heroku上嘗試這些東西,但試一試並回復我們。

http://codex.heroku.com/past/2010/4/15/rufus_scheduler_for_my_tiny_sinatra_apps/

為什么Rufus很酷? 好吧看看這個,很干凈:)

$ 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並將任務放在那里。

希望這有助於其他人。

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM