Postgres の hstore をセロリのブローカーとして使用することは可能ですか (および/または効果的でしょうか)?
私はPostgres dbの使用に制限されています(非常に説得力のある理由がないため)。セロリタスクを備えたdjangoアプリがあります。現在、私は標準のデータベース サポートを使用していますが、セロリのドキュメントでは、非常に小さなタスク キューを超えるものについては、そのアプローチに反対することを強く推奨しています。Postgres の hstore 機能に関する情報と、redis と同等の機能を提供するという提案に出くわしたとき、redis のインストールを検討していました。
ただし、特にセロリに hstore を使用することについては何も見ていませんが、本当に redis の代わりになるとしたら奇妙に思えます。
https://github.com/celery/celery/blob/master/celery/backends/base.pyでセロリのバックエンド コードを
見ると、ベースのセロリの KeyValueStoreBackend は非常に単純な API のようです。
def get(self, key):
raise NotImplementedError('Must implement the get method.')
def mget(self, keys):
raise NotImplementedError('Does not support get_many')
def set(self, key, value):
raise NotImplementedError('Must implement the set method.')
def delete(self, key):
raise NotImplementedError('Must implement the delete method')
def incr(self, key):
raise NotImplementedError('Does not implement incr')
しかし、これに多くの時間を費やす可能性がある前に、hstore を使用してこの API を実装し、それをセロリのバックエンドとして使用することに反対する何かが欠けているかどうかを尋ねる価値があるように思われました。
例えば。セロリには、この API によってキャプチャされない要件 (原子性、スケーラビリティ、負荷時の信頼性など) がありますか? hstore を使用してこれを実装しても、既存のデータベース バックエンドを大幅に改善することはできませんか? 私はセロリにかなり慣れていないため、hstore を使用したことがないので、何を見落としているのか (もしあれば) わかりません。