Plack Advent Calendar Day 4


4日目「アプリケーションのリロード」
http://advent.plackperl.org/2009/12/day-4-reloading-applications.html

4日目は開発中のファイルの再読み込み関連です。

plackup -r hello.psgi

これで、ファイルを修正するたびに一々plackを再起動して読み直ししなくてよくなります。
-rだと、現在のディレクトリ以下を基準にするみたいですが

plackup -R lib,/path/to/scripts hello.psgi

-R で場所を指定できるようです。複数のパス指定は,カンマ区切りで。

この機能の効率を上げるためにLinuxならLinux::Inotify2,MacならMac::FSEventsを入れるといいよということなのでLinux::Inotify2をいれておきました。
何が変わったのかはよくわかりませんが、以下にあるようにかなりリソース消費などが違うようです。
http://d.hatena.ne.jp/sugyan/20100404/1270320069
http://d.hatena.ne.jp/tokuhirom/20091216/1260962843

次のくだりはいまいち理解できなかったけど、飛ばしてよさそうなので飛ばします。
(-rを使うと※○△が動きませんよ~といってるきがする)

-r vs Server auto-detection

In Day 3 I told you that the plackup’s server automatic detection is smart, so if your PSGI application uses one of the event modules AnyEvent, POE or Coro, the correct backend would be chosen. Beware this automatic selection doesn’t work if you use -r option, because plackup will now use the delayed loading technique to reload apps in the forked processes. You’re recommended to explicitly set the server with -s option when combined with -r option.

次のくだり、Shotgunも、リロードを実現する別の手段のようですが、とりあえず飛ばします。

さくさくいこう!Day5へ!

,

  1. No comments yet.
(will not be published)