twitter.com をログストレージにする、の続きの続き

我が家の主要なサーバーアプリケーションの一つに、自動録画サーバーがあります。完全に自作のツールで、録画忘れを防止するのに役立ってはいるのですが、このツールも基本はPython(+CouchDB)で記述されているので、ログをtwitterに出すようにしました

ところが、録画アプリケーションであるので、ログの書き込みにリトライやネットワーク待ちが発生して数秒かかるとかそんなことをされると、そもそもアプリケーションの機能要件を破壊しかねません。

そんなわけで、録画時間が数秒でもずれると結構困るという要求から、Twitter API用スレッドプールを適当に実装して、async オプションを使って非同期書き込みをできるようにした、0.2.1 をリリースしました*1

http://github.com/yssk22/tweethandler/tree/0.2.1

というかネットワークライブラリを書く人はみんな非同期オプションつけようよ!

あとついでに、閾値を超えた場合に Direct Messageを飛ばすオプションもつけてみました(デフォルトはlogging.ERRORレベル以上)。DMを送る相手がロガーのアカウントをfollowしていないとDMを飛ばせないので、メールと違って設定ミスで変なところにアラートが飛ぶ心配もございませんよ!

とか後付けで意外と便利じゃね?と思うことがあったのですが、twitter のスペックって意外とメッセージングインフラ全般に応用できるかもしれませんね。ハッシュタグを工夫すると、アプリケーション単位とかサーバー単位でログをフィルタできたり、、、とか。

*1:ちょっと富豪プログラミングかも...