金利0無利息キャッシング – キャッシングできます

 | 

2009-09-06

FCGI::EVを試す

17:22 | FCGI::EVを試す - 金利0無利息キャッシング – キャッシングできます を含むブックマーク はてなブックマーク - FCGI::EVを試す - 金利0無利息キャッシング – キャッシングできます

http://search.cpan.org/dist/FCGI-EV/

IO::AsyncベースのFCGI::Asyncというのがありますが、FCGI::EVはEVベース。

http://subtech.g.hatena.ne.jp/mala/20090605/1244188932

EVベースなのでAnyEventと親和性が高いハズ。というわけで1秒おきに現在のepoch秒をストリーミングで流すサンプル。

#!/usr/local/bin/perl

use strict;
use FCGI::EV;
use FCGI::EV::Std;
use FCGI::EV::Std::Nonblock;   # just loading module will activate it!
use IO::Socket::INET;
use AnyEvent;
use Data::Dumper;

my $sock = IO::Socket::INET->new(
    Listen    => 5000,
    LocalAddr => 'localhost',
    LocalPort => 1234,
    Proto     => 'tcp',
    Blocking  => 0,
);

my $w = EV::io $sock, EV::READ, sub {
    my $client = $sock->accept;
    $client->blocking(0);
    FCGI::EV->new( $client, 'FCGI::EV::Std' );
};

EV::loop;

sub PRE   { warn "PRE" }
sub POST  { warn "POST" }
sub ERROR { warn "ERROR";warn @_ }

use Scalar::Util qw( weaken );

sub START {
    my ($this) = @_;
    warn Dumper $this;
    $this->{w} = EV::timer 1, 0, $this->wrap_cb( \&reply );
}

sub reply {
    my ($this) = @_;
    $this->send("Status: 200 OK\r\n");
    $this->send("Content-Type: text/plain\r\n\r\n");

    my $var = 1;
    $this->{timer} = AnyEvent->timer (after => 0, interval => 1, cb => sub {
        $var++;
        warn $var;
        $this->send( time . "\n");
        if ($var == 10) {
            $this->done();
        }
    });
    weaken($this);
    return;
}

CorneliaCornelia2011/11/01 06:44Arctiles like these put the consumer in the driver seat-very important.

bmvvvgpfvojbmvvvgpfvoj2011/11/01 21:47ycHqXu <a href="http://hdhcbegdusea.com/">hdhcbegdusea</a>

hksoeylzpbzhksoeylzpbz2011/11/03 21:33rcVtZX , [url=http://mispxaoxodjv.com/]mispxaoxodjv[/url], [link=http://oqamuvqdglbt.com/]oqamuvqdglbt[/link], http://hjkmoqyshbqz.com/

rcgmxlekaprcgmxlekap2011/11/05 02:58hS80L2 <a href="http://jjwrdlnsxaay.com/">jjwrdlnsxaay</a>

fwptdvguyrffwptdvguyrf2011/11/07 21:50llod3k , [url=http://fbbnvsvmzomp.com/]fbbnvsvmzomp[/url], [link=http://qfeqlxtqdnct.com/]qfeqlxtqdnct[/link], http://mscxqqqpzhxu.com/

トラックバック - http://subtech.g.hatena.ne.jp/mala/20090906
 |