我用redis stream consumerpython寫過,minimal code看起來如下:
key = 'order_completed'
group = 'inventory_group'
redis.xgroup_create(key, group) #statement1
result = redis.xreadgroup(group, key, {key: '>'}, None) #statement2
我需要幫助來理解最后兩個陳述。
我有限的理解是,它redis.xgroup_create(key, group)正在創建一個consumer group.
并且,redis.xreadgroup(group, key, {key: '>'}, None)用于讀取流中的最新條目。
是什么{key: '>'}?
我已經閱讀了 xreadgroup但無法從中理解很多。
uj5u.com熱心網友回復:
特殊的>流條目 ID 使 XREADGROUP 只回傳從未傳遞給組中任何消費者的流條目 - 基本上,它只會回傳新條目。
除了>,該命令接受任何其他常規流條目 ID:在這種情況下,XREADGROUP 回傳已傳遞給呼叫使用者的流條目,其 ID 大于傳遞的值。
從命令檔案:
使用 XREADGROUP 時在 STREAMS 選項中指定的 ID 可以是以下兩個之一:
- 特殊的 > ID,這意味著消費者只想接收從未傳遞給任何其他消費者的訊息。它只是意味著,給我新的資訊。
- 任何其他 ID,即 0 或任何其他有效 ID 或不完整 ID(僅毫秒時間部分),將具有回傳等待發送命令的消費者的條目的效果,其 ID 大于提供的 ID。所以基本上如果 ID 不是 >,那么該命令只會讓客戶端訪問它的待處理條目:傳遞給它但尚未確認的訊息。請注意,在這種情況下,BLOCK 和 NOACK 都將被忽略。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/530954.html
