a big fish in a small pond

ロードバイク、rails 、料理、写真、ガシェットでお送りします。

そろそろ開発7 Heroku scheduler入門その2

HerokuのPay情報(払うとは言っていないし、当分払わなくともよい)を入れると、Heroku schedulerをアプリに登録することができる。

後は、動かすスクリプトを準備する。
Heroku devcenterに以下のサンプルがあるので改良して使う。が、内容をしっかり理解しないとハマることになるので読解。

1.#!/usr/bin/env ruby
2.require "sequel"
3.DB = Sequel.connect ENV["DATABASE_URL"]
4.puts "Cleaning old sessions..."
5.DB["DELETE FROM sessions WHERE last_seen_at < ?", Time.now - 24*60*60]
6.puts "done."

1.#!/usr/bin/env ruby
パスの指定。定形文句
2.require "sequel"
sequalはDBのアクセスライブラリ。gemとして導入しておかないと、この行でsequelが読み込めないとエラーになる。
3.DB = Sequel.connect ENV["DATABASE_URL"]
DB変数に、接続情報を入れる。HerokuはENV変数にこの文句を入れる事で、あとは勝手にやってくれるらしい。
4.puts "Cleaning old sessions..."
アウトプットの文句。以上
5.DB["DELETE FROM sessions WHERE last_seen_at < ?", Time.now - 24*60*60]
last_seen_atが一日前のデータを削除するように見える。違ったらすいません。
6.puts "done."
終わったからドーンとアウトプット。以上。

しかし先ほどHeroku runコマンドで流してみたが、DELETE文が空振りしているっぽい。
引き続きあす調査