2009年04月16日

注意:ブックマークだけでなく、お気に入りアンテナのフィードを使うようになりました。

はてブのお気に入りリストってRSSリーダとかで見たりするのが多いんですが、もっとTwitterのようにカジュアルにウオッチしたいと思って、お気に入りリストのRSSをTwitter API互換のFeedに変換するサーバを書きました。

Hatter - 太っ腹にソースコードも公開してるので、自宅サーバとかに置いて使うってのもできます。

たとえばid:acotieがお気に入りに入れてる人達のブックマークをTwitter風に変換したい時は

http://hatetter.blogdb.jp/acotie/statuses/friends_timeline.json
もしくは
http://hatetter.blogdb.jp/acotie/statuses/friends_timeline.xml
を使います。一回目アクセスした時は空ですが、1分くらい立つとFeedが出来てきます。
このままだとXMLやらJSONがそのまま出てくるので、何かしら専用くらいんとから見ると良いです。

XMLとJSONに変換するので、たいがいのクライアントで見れるようになるんじゃないかなぁと期待しています。

技術的補足

Hatterでは、Perl以外にもQ4Mとmemcachedを使っています。

最初リクエストがあった時には、空の結果を返しつつQ4Mにキューを詰んで、数十秒後にQ4MのWorkerがFeedを取りに行って、Feedの変換を行い、結果をmemcachedに積み込んでいます。
で、クライアントからの二度目のアクセスの時にはmemcachedに入っている変換結果を出すだけです。
一度キューに突っ込んだらmemcachedに時間を保存しておいて5分以内は、キューに突っ込まれないようにしています。
と言った事を、一つのID毎に行っているので大量のアクセスが来たとしても自分のサーバも、はてなのサーバも大変な事にならない予定です。
Webアプリとしてはmemcachedとmysql(Q4M)との間でしか通信しないので、殆どブロックする事無く高速に応答出来るのではないかと思っています。
また、大量に使われる事になってキューがいっぱいたまってもQ4MなのでFeedの処理で過負荷になることも無くて安心です。やばければworkerのプロセス増やせば良いだけですしね。

キューに関しても3回retryして失敗したらキューを捨てるという事をやっていて、これもData::Model::Driver::Queue::Q4Mのお陰で簡潔に実装が行われています。
Queue::Q4Mとは違って、queue_waitに渡すテーブルに対するコールバックハンドラを渡す感じになっていたり、queue_endやqueue_abortの面倒見なくても良い、また対応するqueueのレコードを予め取得してobjectにしてコールバックハンドラに返す。といった事が効いていると思います。Q4M可愛いよQ4M。

Web周りに関しては、普通にHTTP::EngineとMouseだけでやってます。FrameworkなんかこのレベルだといらなくてHTTP::Engineだけで事足りますわね。
あ、index.htmlだけHTTP::Engine::Middleware::Staticで出してますよ。

ということで、どうぞご利用下さい。

Posted by Yappo at 2009年04月16日 13:41 | TrackBack | tech
Comments

rs gold | RS money | buy rs money | buy rs gold | cheap rs gold | cheap rs money | Runescape gold | Runescape money | Runescape power leveling | Runescape powerleveling | rs power leveling | rs powerleveling | rs accounts | rs account | runescape accounts | runescape account | rs powerleveling | Runescape powerleveling | rs power leveling | Runescape power leveling | Runescape gold|Runescape Money | Runescape gold|Runescape Money | rs gold|rs Moneyrs gold | RS money | buy rs money | buy rs gold | cheap rs gold | cheap rs money | Runescape gold | Runescape money | Runescape power leveling | Runescape powerleveling | rs power leveling | rs powerleveling | rs accounts | rs account | runescape accounts | runescape account | rs powerleveling | Runescape powerleveling | rs power leveling | Runescape power leveling | Runescape gold|Runescape Money | Runescape gold|Runescape Money | rs gold|rs Moneyrs gold | RS money | buy rs money | buy rs gold | cheap rs gold | cheap rs money | Runescape gold | Runescape money | Runescape power leveling | Runescape powerleveling | rs power leveling | rs powerleveling | rs accounts | rs account | runescape accounts | runescape account | rs powerleveling | Runescape powerleveling | rs power leveling | Runescape power leveling | Runescape gold|Runescape Money | Runescape gold|Runescape Money | rs gold|rs Moneyrs gold | RS money | buy rs money | buy rs gold | cheap rs gold | cheap rs money | Runescape gold | Runescape money | Runescape power leveling | Runescape powerleveling | rs power leveling | rs powerleveling | rs accounts | rs account | runescape accounts | runescape account | rs powerleveling | Runescape powerleveling | rs power leveling | Runescape power leveling | Runescape gold|Runescape Money | Runescape gold|Runescape Money | rs gold|rs Moneyrs gold | RS money | buy rs money | buy rs gold | cheap rs gold | cheap rs money | Runescape gold | Runescape money | Runescape power leveling | Runescape powerleveling | rs power leveling | rs powerleveling | rs accounts | rs account | runescape accounts | runescape account | rs powerleveling | Runescape powerleveling | rs power leveling | Runescape power leveling | Runescape gold|Runescape Money | Runescape gold|Runescape Money | rs gold|rs Money

Posted by: Runescpae power leveling at 2009年06月23日 15:45
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。