タグ

plackに関するkarupaneruraのブックマーク (8)

  • PSGI/Plackアプリケーションの起動方法いろいろと本番環境アレコレ - blog.nomadscafe.jp

    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の場合は

  • 最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上 - Hateburo: kazeburo hatenablog

    最近のPlackとStarletにはパフォーマンス改善のため次のような変更が加えられています。 Plackに対する変更 (カッコ内はバージョン) Plack::Request::query_parameters の最適化 (1.0018) Plack::Middleware::AccessLog に Apache::LogFormat::Compilerの導入 (1.0023) Starletに対する変更 local $SIG{..} を無くし、rt_sig* system call が呼ばれる回数を削減 (0.17_01) headerとbodyを結合して一度に出力する閾値を1024から8192に変更 (0.18) ベンチマーク これらの変更の効果を確認するために、次のベンチマークを実行してみます まずアプリケーションはこんな感じ use Plack::Builder; use Plac

    最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上 - Hateburo: kazeburo hatenablog
  • Amon2 がストリーミングに対応しました。 - tokuhirom's blog

    最近、Amon2 のリアルタイムWebサポートをおこないました。 これにより、WebSocket や Long poll をつかうウェブアプリケーションを Amon2 で簡単にかくことができます。 というか、ストリーミングがちょっとあるだけで、Tatsumaki を勉強しなきゃいけないのが面倒だったので、つくりました。 Amon2::Plugin::Web::Streaming というプラギンが、今回のバージョンでついています。これをつかうとこれまで Tatsumaki でやっていたようなことが、簡単に Amon2 でできるようになります。 MXHR には対応していないけど、WebSocket と streaming に対応したので、Amon2 で Tatsumaki がやっている領域はサポートできたとおもいます。というか自分がつかってる範囲ではこれで十分です。 以下がチャットのサンプルで

  • Plack 1.0 and the future

    I’m proud and excited to announce the long-awaited release of Plack 1.0 on CPAN. This is our 120th release since we started this project on October 2009 and has commits from 92 developers (counting with git log and including duplicates from different email address). Congratulations to everyone involved in the project! Why now? The previous release was 0.9991, it was obvious we were running out of

  • Twiggy::Prefork をリリースしました - blog.nomadscafe.jp

    だいぶ以前 Plack::Server::AnyEvent::Prefork というのを書いて某所で使っていたのですが、ここ数日で事例がもうひとつ増えたついでに Twiggy ベースに書き直してCPANリリースしました。 https://metacpan.org/module/Twiggy::Prefork 使うには、 $ plackup -s Twiggy::Prefork -a app.psgi な感じで、Server::Starterにも対応しているので、 $ start_server --port 5000 -- plackup -s Twiggy::Prefork -a app.psgi とすれば、hot-deployも可能です。 起動オプションは、Twiggyがサポートしているオプションに加えて、 —max-workers preforkするworker数 —max-reqs-

    karupanerura
    karupanerura 2012/06/09
    あとでためす
  • tokuhirom blog

    PSGIとPlackと 〜 軽量フレームワークAmon2入門 (3) 〜 さて、今回は裏をかいて、いったん題のAmon2の話からはずれて、PSGI/Plackのはなしをしましょうかね。 PSGI/Plackは基的にはアプリを書く人は知る必要はあまりないのですが、概念ぐらいは知っておくにこしたことはない、というところです。 さて、数年前のYAPCでわたくしが口を酸っぱくして申し上げたことを皆さんはおぼえているでしょうか。そう、一番大事なのは「PSGIは仕様。Plackは実装」ということなのでした。ここだけ把握していれば十分なので、PSGI/Plack の詳細に興味がない人はブラウザの Back ボタンを連打してください。 PSGIってなんだ?PSGIとは「ウェブアプリケーションとアプリケーションサーバーの間のプロトコルのこと」です。Perlの基的なデータ型であるArrayRef, Ha

    tokuhirom blog
    karupanerura
    karupanerura 2011/07/14
    分かりやすい。
  • Webアプリケーションの無停止稼働 - Server::Starter, Parallel::Prefork, Starlet を使って (SoozyConference 7 発表資料)

    The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much. tanki online | 2048 game | tanki online game ReplyDelete

  • WebSocketを使って重い処理の進み具合をリアルタイムにクライアントへ通知する - Csideのダイアリー

    分割が可能な重い処理をサーバー側で実行して、処理の状況の変化をクライアント側で表示させたいとき(プログレスバーみたいなのを作るとき)、どういう方法がいいかちょっと考えてみた。問題は「どうやって処理の進歩状況の情報をクライアントサイドでリアルタイムに受け取るか」ということ。 まず最初に浮かぶのが、分割されたタスクを1つ行うAPIをサーバー側で用意して、クライアント側からJSのsetTimeoutなりライブラリのdeferredなり使って並行リクエストして、コールバックでプログレスバーを書き換える・・・みたいなのが浮かんだ。けれど、PerlにはCoroやAE::HTTPみたいな便利なものがあるし、「折角なので並行処理の制御はあくまでサーバー側でできないか?」と考えていた。 で、次に思い付いたのが、「分割されたタスクが1つ終わるたびにサーバー側からクライアント側に情報をpushする」こと。これを

  • 1