定期的に処理を実行する
http://d.hatena.ne.jp/technohippy/20070807
を参考に、Railsでインストールした。
cronのように定期的にワーカーを立ち上げ、処理させることもできる。
config/backgroundrb_schedules.yml
# ラベル(わかりやすい名前を) sample_runner: # 対象のワーカークラス :class: :sample_worker :job_key: :sample_runner # :cron_trigger だと同じみのcronと同じように指定できる # :trigger の場合は、 # :start(いつから)、:stop(いつまで)、:interval(何秒おきに?) # という形式で指定する。 :trigger_type: :cron_trigger # cronと違うのは秒から指定できること。 # この例では1分おきに0秒の時点で実行。 :trigger_args: 0 * * * * * *
また、スケジュールで起動するワーカーは、do_work内で明示的にself.deleteを呼ぶ必要があるらしい。
class SampleWorker < BackgrounDRb::Worker::RailsBase def do_work(args) # 処理 self.delete end end SampleWorker.register
あとは、
script/backgroundrb start
で、定期的に目的のワーカーを起動する。
log/backgroundrb_server.logを観察すると
20071128-11:48:02 (5685) Starting worker: sample_worker sample_runner (sample_worker_sample_runner) ()
のようなログが流れていく。