Skip to content

Commit 1a06aab

Browse files
authored
feat(consumer): add default timeout in Request new task (#58)
1 parent d1a0d31 commit 1a06aab

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

consumer.go

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,24 @@ func (s *Consumer) Queue(task QueuedMessage) error {
119119

120120
// Request a new task from channel
121121
func (s *Consumer) Request() (QueuedMessage, error) {
122-
select {
123-
case task, ok := <-s.taskQueue:
124-
if !ok {
125-
return nil, ErrQueueHasBeenClosed
122+
clock := 0
123+
loop:
124+
for {
125+
select {
126+
case task, ok := <-s.taskQueue:
127+
if !ok {
128+
return nil, ErrQueueHasBeenClosed
129+
}
130+
return task, nil
131+
case <-time.After(1 * time.Second):
132+
if clock == 5 {
133+
break loop
134+
}
135+
clock += 1
126136
}
127-
return task, nil
128-
default:
129-
return nil, ErrNoTaskInQueue
130137
}
138+
139+
return nil, ErrNoTaskInQueue
131140
}
132141

133142
// NewConsumer for create new consumer instance

0 commit comments

Comments
 (0)