XCLAIM

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

未処理データを処理する

XREADGROUP でデータを読んだ後にアプリケーションがダウンすると、そのデータは未処理のまま残ります。 XPENDING コマンドで未処理(pending)時間を確認し、他のコンシューマー(consumer)に処理させるコマンドが XCLAIM です。
使い方は XCLAIM key group consumer min-idle-time ID です。

Example

コマンド>XCLAIM sensor-1234 cg-A C3 5000 1539035297138-0
結果> 1) 1) 1539035297138-0
    2) 1) "temperature"
        2) "101"
  • 上のコマンドは min-idle-time(pending time) が5秒以上のデータを処理します。
  • XCLAIM コマンドは idle time を 0 に設定します。そのため2番目に要求したクライアントはデータを読み取れません。
  • このコマンドも処理後に XACK で処理完了を確認する必要があります。

その他のオプション

ここで説明するオプションは AOF 記録やクローン(スレーブ)へ伝える目的で内部的に使われるものです。

  • IDLE <ms>: Idle 時間を設定します。省略すると 0 になります。
  • TIME <ms-unix-time>: 意味は idle 時間と同じですが Unix 開始時刻で設定します。AOF 記録時に使います。
  • RETRYCOUNT <count>: 読んだ(delivered)回数を設定します。
  • FORCE: 強制的にペンディング(pending)データにします。PEL(Pending Entry List) に入れます。
  • JUSTID: ID だけ返します。

構文

XCLAIM key group consumer min-idle-time ID [ID ...]
[IDLE ms] [TIME ms-unix-time]
[RETRYCOUNT count] [FORCE] [JUSTID]

  • このコマンドは version 5.0.0 から使用できます。
  • 時間計算量は O(log(N)) です。N はペンディングされたデータ数です。

<< XPENDING XCLAIM XAUTOCLAIM >>

Email 返事がかかってなれば、メールでお知らせします。