Name the worker a piece of work came from, so a bundle taking two is handed each to its own handler

This commit is contained in:
jochen
2026-10-09 10:12:39 +02:00
committed by jschoubben
parent 6d9906b6c9
commit 7b4428c510
+2 -1
View File
@@ -195,6 +195,7 @@ func (c *Conn) SeatAnswer(module, subject string, answer func(subject string, bo
// Work is one message a holder took from a seat's work queue.
type Work struct {
Worker string `json:"worker"`
Subject string `json:"subject"`
Body json.RawMessage `json:"body"`
Headers map[string]string `json:"headers,omitempty"`
@@ -241,7 +242,7 @@ func (c *Conn) SeatTake(module, consumer string, deliver func(Work) error) (func
for k := range msg.Headers() {
headers[k] = msg.Headers().Get(k)
}
if err := deliver(Work{Subject: msg.Subject(), Body: json.RawMessage(msg.Data()), Headers: headers}); err != nil {
if err := deliver(Work{Worker: w.Consumer, Subject: msg.Subject(), Body: json.RawMessage(msg.Data()), Headers: headers}); err != nil {
_ = msg.NakWithDelay(NakDelay)
return
}