/var/log/messages

debugging with sixth sense

Resque 使ってバッチ処理を記述

あるアクションで API タタいて云々、みたいな時間がかかる処理の記述が必要になったので使ってみました。

ぶっちゃけ実装としては kickoff するアクションで Hoge という app/worker 配下に定義されてるクラスを、という事であれば

Resque.enqueue(Hoge, ....

て形で Hoge.perform に渡す引数を二番目の引数以降で羅列してあげればそれで OK らしいです。とは言え、いくつか足をすくわれた事があり、以降で控えておきたいと思います。

色々とヤられたのですが

  • worker 起動せずに試験始めて動かない、と言ってみたりとか
  • 最初、管理画面があることを知らなくてどうやって問題処理すれば良いか分からなかったりなど

あたりを自分メモってことで以下に。

worker 起動

daemon なソレとして起動するスクリプトを、という記事を今見つけた次第です。。

今は手で

$ QUEUE=default rake environment resque:work

みたいなことしてるんですがスクリプト必要ですね。今は script というディレクトリが無いみたいなので bin に置くのかな。

今 devise 盛り込み中なので落ちついたら branch 作って対応の方向。

デバッグのための管理画面

以下を config/routes.rb に追加してます。

  require 'resque/server'
  mount Resque::Server.new, :at => "/resque"

これで /resque なパスにアクセスすると管理画面にアクセスできます。これが無いとかなりキツいです。

Comments