Rubyの非同期メッセージングライブラリAP4R。このAP4Rの起動/停止もCapistranoでやってみた。
最初は自分でCapistranoのタスクを定義しないといけない?と思ってたけど、0.3.4からCapistranoのレシピが追加されてた。lib/ap4r/recipes.rbにAP4Rの操作系のタスクが用意されてる。
なので、Capistranoのdeploy.rbでは
#AP4RのCapistranoタスクをロード require "ap4r/recipes" # 対象サーバの指定 role :ap4r, "hoge.jp" # キューの設定ファイルの場所を指定 set :ap4r_conf, "config/queues_mysql.cfg"
と指定すればOK。あとは通常のCapistranoの設定で良いはず。
この状態で、cap -Tすると
$ cap -T cap ap4r # Deploys your project. cap ap4r:cold # Deploys and starts a "cold" application. cap ap4r:restart # AP4R. cap ap4r:rollback # Rolls back to a previous version and restarts. cap ap4r:setup # Setups your project space. cap ap4r:start # Start AP4R process on the ap4r server. cap ap4r:stop # Stop the AP4R process on the ap4r server. cap ap4r:update # Updates your code from repository and makes symlin... ...
と、Capistranoタスクが追加されてるのが分かる。