Skip to content

Instantly share code, notes, and snippets.

@tily
Last active December 17, 2015 05:59
Show Gist options
  • Save tily/5561995 to your computer and use it in GitHub Desktop.
Save tily/5561995 to your computer and use it in GitHub Desktop.
resque のソースコードを読む

resque のソースコードを読む

概要

自分で似たようなのを作りたいので resque のソースコードを読む。

詳細

雑記

  • 2.0.0 でインタフェースが変わって後方互換性とか気にしてるっぽくてソース読むには悪いタイミングっぽい
    • rake と thor の両方をサポートしてたり
    • perform なのか work なのか
  • rdoc File: README — Documentation for resque (1.24.1)
    • QUEUE=* っていうのもできる
    • INTERVAL 指定
    • プロセスの扱いは真似したい worker が親プロセスになって子プロセスを fork する仕組み
      • これによってメモリが増大しても大丈夫みたいなことになってるっぽい
    • Resque.inline
    • config は Resque.config= で initializers とかで渡してください
    • god や monit と連携する例が examples にある
    • "Because Resque assumes chaos."
  • redis が提供している blpop みたいな atomic な操作をどうやって実現するか
  • プロセス周りを勉強する必要ありそう (CONT とか USR1 とか…)
  • mutex_m を勉強する必要ありそう
  • redis じゃないと実現できない機能
    • workers 管理 *
    • failures 管理
      • failure hook を使えるようにすれば良さそう
  • 1.X 系だと Queue(Resqueクラス)/Worker/Job というのがメインの構成要素
  • reserve メソッドとかいろいろな同名のメソッドがいろんなところに定義されていて割とわけ分らなくなっている

各クラス

  • Resque (resque.rb)
  • Resque::Queue

処理の流れから読む

プラグイン周り

疑問

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment