0
私はRails:バックグラウンドタスクから取得したデータをホーム画面に表示する方法は?
$ rake recurring:init
を実行したときに、私は
lib/tasks/my_task.rake
namespace :recurring do
desc "Get website rank everyday at 12:00 OM UTC"
task init: :environment do
#Delete any previously-scheduled recurring jobs
Delayed::Job.where('(handler LIKE ?)', '--- !ruby/object:Recurring::%').destroy_all
Recurring::MyTask.schedule!
end
end
でこれを実行するraketaskを持って
module Recurring
class MyTask
include Delayed::RecurringJob
run_every 1.day
run_at '12:00pm'
timezone 'UTC'
def perform
url = "http://alexa.com/siteinfo/example.com"
doc = Nokogiri::HTML(open(url))
@rank = doc.at_css("strong.metrics-data.align-vmiddle").text
end
end
end
を持ってlib/recurring.rb
でAlexa
からhttp://example.com/
のウェブサイトのランキングをこすりするには、このコードを持っています
タスクは毎日実行されます。 t 12:00 utcと私は@rank
(行番号10 recurring.rb
)のウェブサイトのランクを持っています。
しかし、このデータをインデックスページに表示するにはどうすればよいですか?私はバックグラウンド処理が初めてです。どんな助けでも大歓迎です。
あなたの質問は明らかではありません。このランク情報をdbに保存すると、ビューに自動的に反映されます。ですから、問題はあなたがデータをdbに保存していないか、またはそれをビューに表示する方法がわからないことですか? –
@Joel_Blum私は '@ rank'をdbに保存していません。そこにはdbが関与することなく表示される方法がありますか –
おそらくまともな選択肢はありませんが、dbに保存するのはなぜでしょうか? –