2011-12-30 5 views
4

で良い永続同期キュー..私はすぐにFIFOまたはFILOのオプションを気にしないが、それは将来的にはいいかもしれないのpython

私が探しています何の素敵な速い簡単な方法です複数のプロセスで取得して置くことができるディスク上に(最大で1ギガバイトのデータまたは数千万のエントリ)格納します。エントリは単純な40バイト文字列であり、Pythonオブジェクトではありません。 shelveのすべての機能を実際に必要としないでください。

私はこれを見ましたhttp://code.activestate.com/lists/python-list/310105/ それは簡単です。新しいキューバージョンにアップグレードする必要があります。

もっと良いことがあると思いますか?電源が切れた場合、ピクルされたファイル全体が1つのレコードではなく壊れてしまうことが懸念されます。ファイルの使用

+2

データの正確な幅が分かっている場合、遅延が問題にならない場合、データベースは不合理な解決策ではありません。あなたは非常に簡単な解決策のためにsqliteを使うことができます。 – Endophage

答えて

-1

が動作していません?...

は停電から回復するジャーナリングファイルシステムを使用してください。それが彼らの目的です。

+2

ジャーナリングは、データではなくメタデータ(!)の整合性を維持するのに役立ちます。単純なファイルを使用してデータを失うのは非常に簡単です。 –

3

Celeryをお試しください。純粋なPythonではなく、RabbitMQをバックエンドとして使用していますが、信頼性が高く、永続的で分散性があり、長期的にはファイルやデータベースを使用するほうがはるかに優れています。

2

PyBSDDBと思っています。アクセスタイプとしてキューを選択できます。 PyBSDDBは、Oracle Berkeley DBに基づくPythonモジュールです。 同期アクセスがあり、Pythonバインディングから可能かどうかわかりませんが、別のプロセスからアクセスできます。 dbに書き込む複数のプロセスについて、私はthis threadを見つけました。

関連する問題

 関連する問題