2007-08-29

Directory Queue便利そう。

Directory Queue
ファイルベースのキュー実装。

ファイルベースなので、データはファイルの中に書く。
ファイルベースなので、途中でプログラムがクラッシュしても、キューの中身は残るんだろうか。(きっとそうだよね。。)
面白いのは「メタデータ」を別途持たせることができること。

これはJMSのMessageの仕様を参考にしているのかな?

こういうプロジェクトがきちんと育ってくれたら、自分が今の仕事で使っているJMS地獄からいくぶん解放されるんじゃないだろうか。

追記---
「ファイルベース」というよりは、「ディレクトリベース」というほうが適切か。
キュー内の1アイテムは、1ディレクトリで表されている。そのディレクトリの中に、データを表す"file.data"というファイルと、メタデータを表す"meta.data"というファイルを置くようだ。

キューからのアイテムの取得は、os.listdirでディレクトリ内の一覧を取得して、ディレクトリ名のソートで先頭を取得するようだ。
これはキュー内に大量のメッセージを格納したときにパフォーマンスが心配である。
とは言っても、メッセージが大量にならない場合には問題ないだろう。