※この記事は自力ではありません 1つのアプリの中で複数の.psgiをplackupしたいときがある。 そんなとき、 複数ターミナルを立ち上げてplackup screenで複数ウィンドウ などの手段で1個1個コマンド打ってもいい、のだけど、例えばforkでこんなことを。 今回は5000番と5001番を使う簡単なpsgiを例に取る。 psgi # 5000.psgi return sub { return [ '200', [ 'Content-Type' => 'text/plain' ], [ "port: 5000" ], ]; }; # 5001.psgi return sub { return [ '200', [ 'Content-Type' => 'text/plain' ], [ "port: 5001" ], ]; }; 打ちたいコマンド % plackup 5000.ps
PSGI/Plack/PSGIアプリケーションを動かす時に一番使われているのは plackup でしょう。 $ cat app.psgi use Plack::Builder; use MyApp; my $app = MyApp->psgi_app; builder { enable 'ServerStatus::Lite', => ..; $app; }; $ plackup -E production -s Starlet --max-workers 30 --port 5000 -a app.psgi plackup コマンドの -s にハンドラ名を指定して起動します。本番環境では -E や $ENV{PLACK_ENV} を指定してStackTraceやLintといった開発に便利なPlack::Middlewareが追加されないようにする必要がありますね。 Starmanの場合は
2ヶ月くらい前からか、id:tokuhiromさん作成のAmon2を会社のFrameworkのベースにしています。 Amon2は拡張しやすい感じだし、Flavorをメンテするのは結構だるいし、会社なら共通させたほうがいいなーということで、継承して使ってます(Flavorも使っていますけど)。ORマッパーはid:nekokakさんのTeng、テンプレートはid:gfxさんのText::Xslate。 当分公開できるような状態にはならない気がするので、こんな感じにしてます的な話(実際のコードと同じだったり、全然違ったりするところもあるけど、手を入れたポイント的な話)。仮に、MyWAFていう名前空間で書きます。 コードが断片的なのでよくわかんないかも…しれません。 最近書かれているAmon2に関する記事 id:tokuhriomさん自身の解説 http://blog.64p.org/entry/
Released Router::Simple 0.01 http://github.com/tokuhirom/p5-router-simple my $router = router { connect '/' => {controller => 'Router', action => 'index'}; submapper('/entry/{id:[0-9]+}', controller => 'Entry') ->connect('/show', {action => 'show'}) ->connect('/edit', {action => 'edit'}); }; my $psgi_app = sub { my $env = shift; if (my $p = $router->match($env)) { "MyApp::C::$p->{controller}"->can
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く