kazeburo さんの Proclet をもちいた劣化 foreman の実装 - tokuhirom’s blog.」に

STDOUT にタグつけたりはしてないけど、とりあえず起動はできる。STDOUT にタグつけるのは pipe で処理かまさないとだめなのでちと面倒

と書かれていたので、その面倒な事をProclet側で実装してみた。

https://metacpan.org/release/KAZEBURO/Proclet-0.09

プロセスの数だけpipeを作って、各プロセスでSTDERRとSTDOUTをpipeに結びつけ、ログ処理専用workerがそれをselectしつつ読み出すという設計になっています

使い方

my $proclet = Proclet->new(
    color => 1
);
$proclet->service(
    code => sub {
        my $loader = Plack::Loader->load(
            'Starman',
            port => 5432,
        max_workers => 4,
        );
        $loader->run($app);
    },
    tag => 'web'
);
$proclet->service(
    code => sub {
        exec('/usr/bin/memcached','-vv','-p','11211');
    },
    tag => 'memcached'
);
$proclet->run;

こんな感じに書いて起動すると↓のようになります

proclet.png

これで一歩foremanに近づいたような気がします

色がつくオプションはデフォルト無効になっています。

このブログ記事について

このページは、Masahiro Naganoが2012年8月31日 14:46に書いたブログ記事です。

ひとつ前のブログ記事は「zshのzargsが便利そうなのでperlで書いた」です。

次のブログ記事は「File::RotateLogs っていうログをファイルに記録していくモジュールを書いた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja