Cannot control message pulling from the queue
- Dominant language
- Go
- Stars
- 1.5k
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Description
I have this use case:
- A Redis list is initialized with 3 messages '1', '2' and '3'.
- A main function iterates forever on a redis receiver.
- After each received message the goroutine sleeps for 30 seconds.
I would expect that after pulling a single message ('1') - two message will remain on the redis list, but instead - only the last message remains while the second message was already pulled by the `redis.makeSubscriber` function, and waits in the internal channel instead of in the redis list itself.
This functionality prevents from other machines pulling the message while the first is sleeping.
Is there any way to fix it?
Thanks!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by examining the redis.makeSubscriber function and the receiver loop described in the issue. Reproduce the case with three Redis list messages and a 30-second delay after each receive; done means only the actively processed message is pulled, while remaining messages stay available for other machines.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, redis
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100