rake タスク追加など

へろへろながらも色々見つつ云々な方向。
とりあえず以下?

$ rails g task start_stop_vm
      create  lib/tasks/start_stop_vm.rake

lib/tasks に出力、なのか。

その前に確認

現在時刻の時分をそれぞれ文字列として取得せねば、なんですがどうやるんだろ。

$ rails c
> t = Time.now
=> 2013-10-18 08:47:12 +0900
> t.h
t.hash t.hour t.html_safe? t.httpdate
> t.hour
8
> t.min
47

なるほど。つうか ruby の REPL は tab 補完が効くので良いですね。methods なんてソレもなかなか良いですが人力で探すのは微妙。つうかちょっと前にこのあたり調べた記憶が蘇えってきていたりしています。
とりあえず出力された .rake に desc なソレを突っ込んだら rake -vT で何かが出てきた。で、以下をでっち上げて試験。

namespace :start_stop_vm do
  desc "execute start and stop vm"

  task :execute => :environment do 
    now = Time.now
    Resavation.find_all_by_hour_and_min(now.hour, now.min).each do |r|
      if r.operation == "Start"
        VirtualMachine.start_vm(Conn.find(r.conn_id), r.vmid)
      elsif r.operation == "Stop"
        VirtualMachine.stop_vm(Conn.find(r.conn_id), r.vmid)
      end
    end
  end
end

当り前に動きます。staging 方面にアレしてスマホ実装検討するか。

その後

とりあえず heroku 方面に deploy したのですが、Heroku Scheduler をアレしないといかんのか。コマンドにて以下?

$ heroku addons:add scheduler

で、あとは dashboard から Job 追加で良いのか。いやはや。本当に自動で云々なのかを確認させて頂いて

  • Web の UI 微妙
  • スマホ方面

で云々、な方向。

よく考えたら

タイムゾーン違うなorz
確認してみるに heroku 側の timezone 変更できる模様。

ありがとうございました。