Rubyのclockworkでエラーが出る
ちょっとはまった。
出たバグ
rubyファイルとして実行すると実行できたプログラムを,clockworkのジョブの中にいれて実行するとSQlite3::Exceptionのエラーとか出る。
原因
# hoge.rb print `pwd`
# hage.rb require "clockwork" include Clockwork every(1.minutes, ''piyo") do print `pwd` end
っていうhoge.rbとhage.rbってファイルを作った。これを以下のように実行した場合,
$ ruby folder/hoge.rb => home/folder $ clockwork folder/hage.rb => home
ってなる。
つまり,rubyとして実行した場合は実行ディレクトリが(rubyファイルの存在する)folder内になるのに対して,clockworkでは現在のディレクトリ(rubyファイルの親ディレクトリ)が実行ディレクトリになるっぽい。
まぁそりゃあfolder内のデータベースファイルにアクセスできないっすよねっていう。もしかして常識なんかな?