タグ

poeに関するlizyのブックマーク (11)

  • LWP::UserAgent + POE::Filter::Line で行ベース処理 - naoyaのはてなダイアリー

    #!/usr/bin/env perl use strict; use warnings; use LWP::UserAgent; use POE::Filter::Line; my $filter = POE::Filter::Line->new; my $ua = LWP::UserAgent->new; ## POE::Filter::Line で $chunk を行入力に変換 $ua->get( 'http://d.hatena.ne.jp/naoya/', ':content_cb' => sub { my $chunk = shift; my $lines = $filter->get([ $chunk ]); for (@$lines) { print "got: $_\n"; } } ); POE::Filter は単独で使うことができます。LWP のコールバックと組み合わ

    LWP::UserAgent + POE::Filter::Line で行ベース処理 - naoyaのはてなダイアリー
    lizy
    lizy 2008/05/08
  • mixi Engineers’ Blog » 新RSS Crawlerの裏側

    このブログでは初めましての長野雅広(kazeburo)です。mixi開発部・運用グループでアプリケーションの運用を担当しています。 12月12日よりmixiのRSSのCrawlerが改善され、外部ブログの反映が今までと比べ格段にはやくなっているのに気付かれた方も多いかと思います。この改善されたRSS Crawlerの裏側について書きたいと思います 以前のCrawlerについて 以前のCrawlerは cronからbrokerと呼ばれるプログラムを起動 brokerはmember DBから全件、idをincrementしながら取得し、外部ブログが設定されていればcrawlerを起動(fork) crawlerはRSSを取得しDBに格納して終了 このような設計になっていました。 この設計の問題として、member DBを全件走査するという無駄な動作と、一件一件crawlerを起動するためオーバ

    mixi Engineers’ Blog » 新RSS Crawlerの裏側
  • inetd の仕組みを見てみる - naoyaのはてなダイアリー

    inetd や xinetd (以下 inetd) はインターネットサービスをデーモン化するのに共通している処理を担い、ほとんどの時間をアイドル状態で過ごすその手のサービスに必要なリソースを節約する役割を果たします。 inetd のひとつ面白いところは、inetd でサービス化したいプログラムの標準入力/標準出力がクライアントソケットの入出力に接続されるところです。例えば daytime 相当のサービスを自分で作ろうと思った場合 #!/usr/local/bin/perl # daytime.pl use strict; use warnings; use DateTime; use IO::Handle; STDOUT->autoflush(1); STDOUT->printf( "%s\n", DateTime->now(time_zone => 'Asia/Tokyo') ); と標

    inetd の仕組みを見てみる - naoyaのはてなダイアリー
  • PoCo::HTTP で Comet チャットサーバを作る - daily dayflower

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ

    PoCo::HTTP で Comet チャットサーバを作る - daily dayflower
  • perl - PoCo::Client::HTTP < LWP::UserAgent->new(keep_alive => 1) : 404 Blog Not Found

    2007年04月25日02:00 カテゴリLightweight Languages perl - PoCo::Client::HTTP < LWP::UserAgent->new(keep_alive => 1) POEが大流行しています。私自身POEはちょくちょく使っているのですが、サーバーはとにかくクライアントとなるとそれほど使っていません。 理由は、以下ではありません D-5 出張版 - [開発] PoCo::Client::HTTP decodes content (w/o Permission) Kazuho@Cybozu Labs: Re: PoCo::Client::HTTP が勝手に文字コードを変えてしまう件 理由は、もっと単純。非効率だからです。 以下をご覧下さい。ここでは10000bytesのコンテントを同じサーバーに100回取りに行っています。 % perl lwp

    perl - PoCo::Client::HTTP < LWP::UserAgent->new(keep_alive => 1) : 404 Blog Not Found
  • WEB DB PRESS vol.38 - naoyaのはてなダイアリー

    WEB+DB PRESS Vol.38 の見誌が届きました。連載も今回で7回目。今回は POE の話の後編です。複数の HTTP サーバーに非同期で同時アクセスするクライアントプログラムを POE::Component::* に頼らずつくり、その後 POE::Component を紹介しつつ IRC bot を作る、という内容になってます。先日の前編の vol.37、それから先日の YAPC::Asia の資料とあわせてお読みいただけると理解が深まるかなと思います。 今月号は新連載が色々始まってたりして関心が高いわけですが、断固guy 小飼弾さん (http://blog.livedoor.jp/dankogai/) の Alpha Geek に逢いたいのゲストがIT戦記の id:amachang とあの"はまちちゃん"で、はまちちゃんの写真が載っていました。はまちちゃんの顔が見たい人は

    WEB DB PRESS vol.38 - naoyaのはてなダイアリー
    lizy
    lizy 2007/04/19
  • Blog Developer's Cookbook : Weblogs.com Ping Gateway to はてなアンテナ (POE版)

    Weblogs.com Ping Gateway to はてなアンテナ (POE版) 前回紹介した、はてなアンテナ Ping ゲートウェイには、1点問題がありました。Ping を受け取った後、HTTPリクエストを発行してレスポンスを待っているため、Ping 受信に非常に時間がかかることがあるという点です。ここに時間がかかると、Blog ツールのエントリビルド処理が待たされることになり、好ましくありません。Ping を受けとったら即座にレスポンスを返し、非同期にアンテナへのリクエストを投げる方がよいでしょう。 今回のレシピでは、POE と呼ばれるフレームワークを使用して、この処理の非同期化を行ってみます。 Perl の非同期処理 一般に、外部へのネットワーク接続(この場合は、はてなアンテナへのHTTP接続)などによるブロッキング(*1)を避けるためには、一連の処理を個別に非同期で(async

  • POE: Perl Object Environment

    POE is a Perl framework for reactive systems, cooperative multitasking, and network applications. Read more about POE. POE is the most supported event loop for Perl. It supports [http://search.cpan.org/search?m=dist&amp

  • A Beginner's Introduction to POE

    A Beginner's Introduction to POE Jan 17, 2001 by Jeffrey Goff By Dennis Taylor, with Jeff Goff What Is POE, And Why Should I Use It? Most of the programs we write every day have the same basic blueprint: they start up, they perform a series of actions, and then they exit. This works fine for programs that don’t need much interaction with their users or their data, but for more complicated tasks, y

    A Beginner's Introduction to POE
  • naoya.dyndns.org is offline

    naoya.dyndns.org is currently offline. Please try again later. Questions about our services? Learn more at Dyn.com.

    lizy
    lizy 2007/04/01
  • POE おぼえがき - daily dayflower

    TIMTOWTDI なことがいっぱいで POE のことがよくわからなかったのですが,Cookbook とリファレンスを読んでなんとなくわかってきました。 POE::Kernel が POE システムのコアで唯一神 POE::Kernel->run()*1 を実行するとイベントループが回り出す イベントループでやることがなくなると POE::Kernel->run() から戻る(戻ることを期待してはいけない) POE::Session が POE システムにおける,タスク/ステートマシン/プロセス/スレッド的なものの単位 複数生成してよい セッションの最初に _start イベントが発生する セッションの最後に _end イベントが発生する イベントハンドラとして,サブルーチンリファレンス(inline_states),パッケージ関数(package_states),オブジェクトメソッド(o

    POE おぼえがき - daily dayflower
    lizy
    lizy 2006/11/19
  • 1