diff --git a/queues/sqs/consumer.go b/queues/sqs/consumer.go index 7c56f8ff9d6a8ef6a33c78d8a035f790b1eb2039..f41b504ba63f703a62b83011603fbd57b71aa3dc 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 92e45a245ab2b9dac1b34223eb5bda9117b1683b..6cdbe9e9c0d5fe945bbf82ee7d2405e64415e342 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 }