From e8ef7b11331ace29d79cac2f3b1a071d9e07e960 Mon Sep 17 00:00:00 2001 From: Jan Semmelink <jan@uafrica.com> Date: Thu, 14 Oct 2021 12:33:18 +0200 Subject: [PATCH] Define producer for SQS consumer so it can also queue new events from event handlers --- queues/sqs/consumer.go | 4 ++++ service/service.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/queues/sqs/consumer.go b/queues/sqs/consumer.go index 7c56f8f..f41b504 100644 --- a/queues/sqs/consumer.go +++ b/queues/sqs/consumer.go @@ -80,6 +80,10 @@ func (consumer consumer) WithAuditor(auditor audit.Auditor) queues.Consumer { } func (consumer consumer) Run() { + //create producer so event handler can queue new events (e.g. retries...) + consumer.Debugf("Using SQS queue producer for async events ...") + consumer.Service = consumer.Service.WithProducer(NewProducer(consumer.requestIDHeaderKey)) + lambda.Start(consumer.Handler) } diff --git a/service/service.go b/service/service.go index 92e45a2..6cdbe9e 100644 --- a/service/service.go +++ b/service/service.go @@ -27,6 +27,7 @@ func New() Service { env = "dev" } return service{ + Producer: nil, Logger: logger.New().WithFields(map[string]interface{}{"env": env}), IErrorReporter: DoNotReportErrors{}, Auditor: audit.None(), @@ -78,6 +79,7 @@ func (s service) WithStarter(name string, starter IStarter) Service { func (s service) WithProducer(producer Producer) Service { if producer != nil { s.Producer = producer + s.Infof("Producer = (%T)%v", producer, producer) } return s } -- GitLab