Description
Hi, this is a first-timers-only
issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before or even folks who haven't contributed to open source before.
If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!
If you have contributed before, consider leaving this one for someone new, and looking through our general ideal-for-contribution
issues. Thanks!
Problem
Redis 6.2 introduced a new flag, IDLE
to its XPENDING
command. We want to support this flag in Spring Data Redis.
Solution
We have XPendingOptions
as a collector for additional arguments for the XPENDING
command. Extend XPendingOptions
(for the imperative API) and PendingRecordsCommand
(for the reactive API). Add tests to verify this functionality.
See also https://redis.io/commands/xpending for further information.
Steps to Fix
- Claim this issue with a comment below and ask any clarifying questions you needSet up a repository locally following the Contributing GuidelinesTry to fix the issue following the steps aboveCommit your changes and start a pull request
Activity
SivaTharun commentedon May 7, 2021
@mp911de i am a newbie to open source contributions, are you fine, if i start working on this issue.
mp911de commentedon May 7, 2021
Thanks for reaching out. Feel free to work on this issue, I assigned it to you. Let us know if you have any questions.
SivaTharun commentedon May 19, 2021
@mp911de i have started working on this implementation, i just wanted to ask few questions, before i finalize the approach.
groupName
andconsumerName
are the mandatory arguments for theXPENDING
commands, i notice that there is already support for non optional argumentsRange
andcount
. And as per the documentation it is an optional argument.XPENDING <Consumer group Name> <Consume Name> <IDLE TIME MilliSec>
XPENDING <Consumer group Name> <Consume Name> <Range> <IDLE TIME MilliSec>
XPENDING <Consumer group Name> <Consume Name> <Range> <Count> <IDLE TIME MilliSec>
i notice that there a methods defined in both
RedisStreamCommands.xPending(....)
andReactiveStreamCommands.xPending(...)
, which support the current features of XPENDING command.i am guessing i need to add overloaded methods to add support for. IDLE argument too.
RedisStreamCommands.xPending
method inDefaultStringRedisConnection, DefaultedRedisConnection, JedisClusterStreamCommands , JedisStreamCommands and LettuceStreamCommands.
out of which the DefaultedRedisConnection API is deprecated, are we suppose to add the XPENDING IDLE argument support for that API too?
mp911de commentedon Jun 11, 2021
Idle can only be specified when there's a
Range
. The command allows multiple variants of arguments so we decided to encapsulate all arguments withinXPendingOptions
. We do not want to have more overloaded methods on the…Commands
level.If you're interested, you can take a look at
StreamOperations
. You could add there two overloads forpending
which essentially invoke the…Commands
API.mp911de commentedon Jun 24, 2021
Any update here? Is there something we can help you with @SivaTharun?
idle
attribute forxpending
command #2101SivaTharun commentedon Jun 28, 2021
@mp911de i made few changes to support
XPENDING
IDLE
argument forRedisStreamCommands
,ReactiveStreamCommands
andDefaultStringRedisConnection
implementations.Are the changes for supporting
IDLE
argument forJedisClusterStreamCommands
,JedisStreamCommands
,LettuceStreamCommands
are also in the scope of this issue.Also i see that the latest version of jedis and redis client jars, which are already being used with in the project, supports the
IDLE
argument only with a method, that hasXPendingParams
(for jedis) andXPendingArgs
(for lettuce) argument.idle
is an attribute with in those classes.so there will be changes to the
xPending
method declared in the above three classes, essentially this method has to invoke thexPending
method (from client jar), that takes inXPendingArgs
(lettuce) /XPendingParams
(jedis) as argument.matsior commentedon Apr 26, 2024
Hi, is this issue still needs to be done? Can I work on it?
IDLE
argument toXPENDING
command #3116whatasame commentedon Mar 8, 2025
It seems that no one has participated since the last activity a year ago, so I implemented it and created this PR. Please take a look.
IDLE
argument toXPENDING
command #3116Add IDLE argument to XPENDING command.
1 remaining item