使用Postgres的hstore作爲芹菜經紀人有可能(和/或是否有效)?與芹菜一起使用Postgres hstore?
我受限制(缺少一些非常有說服力的理由)使用Postgres數據庫。我有一個芹菜任務的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,所以我不確定我忽略了什麼(如果有的話)。
謝謝 - 我顯然沒有得到關於什麼hstore的正確圖片(希望我看到了「數據庫字段中的哈希映射」這個詞組,解釋了這一切),或者芹菜如何使用redis進行排隊這聽起來好像它並不是真正通過關鍵值存儲來獲得,就像pubsub功能綁定在一起)。不確定PGQ,因爲它似乎需要合作消費者,但我一定會檢查出來。 – Adam
@Adam你能鏈接到你正在閱讀的地方嗎?有一些不好的信息在浮動,我真的很想從源頭上解決它。 –
@Adam for publish/subscribe你可能想查看PostgreSQL的'LISTEN'和'NOTIFY' –