BUSYGROUP Consumer Group name already exists: Consumer group already exists(コンシューマグループが既に存在する)
Redis意味
XGROUP CREATE でストリームにコンシューマグループを作成しようとしたが、そのストリームに同名のグループが既に存在する。Redis は既存のグループを上書きしない。
原因
アプリケーションが起動時に無条件でグループを作成しようとし、前回の実行のグループが残っている、または複数のインスタンスが同じグループを並行して作成しようとしている。冪等でない起動ロジックの典型例。
対処方法
グループの作成を冪等にする: エラーを捕捉して無視する (既存のグループで問題ない)。ストリームがまだ存在しない場合に自動作成するには XGROUP CREATE stream group $ MKSTREAM を使用する。既存のグループは XINFO GROUPS stream で確認する。本当にリセットしたい場合は、先に XGROUP DESTROY stream group で削除する。
同じデータベースの他の項目
- ERR unknown commandUnknown command(不明なコマンド)
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster)(スロットの rehash 中の複数キー要求)
- ERR DISCARD without MULTIDISCARD without MULTI(MULTI なしの DISCARD)
- NOGROUP No such key or consumer groupNo such key or consumer group in stream(ストリームにそのキーまたはコンシューマグループがない)
- NOTBUSY No scripts in execution right nowNo scripts in execution right now(現在実行中のスクリプトはない)
- DENIED Redis is running in protected modeRedis is running in protected mode(Redis は保護モードで稼働中)
- ERR Can't execute '<cmd>': only (P|S)SUBSCRIBE / (P|S)UNSUBSCRIBE / PING / QUIT / RESET are allowed in this contextCommand not allowed in subscribe context(subscribe コンテキストでは許可されないコマンド)