matryer / matryer/vice

Cannot control message pulling from the queue

Open
#57 0 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.