parent
e21b836455
commit
27bf188149
|
@ -33,7 +33,8 @@ func NewEventSqs(consumer *sqs_client.Consumer, converter ConverterFunc, logger
|
||||||
consumer: consumer,
|
consumer: consumer,
|
||||||
converter: converter,
|
converter: converter,
|
||||||
chSize: 10,
|
chSize: 10,
|
||||||
logger: logger}
|
logger: logger.With(zap.String("queueUrl", consumer.GetQueueUrl())),
|
||||||
|
}
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
opt(s)
|
opt(s)
|
||||||
}
|
}
|
||||||
|
@ -57,6 +58,7 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
q.logger.Debug("Received messages from SQS", zap.Int("count", len(messages)))
|
||||||
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
// unmarshal body to sqsEvent
|
// unmarshal body to sqsEvent
|
||||||
|
@ -64,17 +66,27 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// converts message to event
|
// converts message to event
|
||||||
event, err := q.converter(sqsEvent.Message)
|
event, err := q.converter(sqsEvent.Message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error converting event message from SQSEvent", zap.Error(err))
|
q.logger.Error("Error converting event message", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if event == nil {
|
if event == nil {
|
||||||
|
q.logger.Warn("Can not handle message", zap.String("body", *msg.Body))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,3 +108,8 @@ func (c *Consumer) GetQueueAttributes(ctx context.Context) (*aws_sqs.GetQueueAtt
|
||||||
}
|
}
|
||||||
return c.api.GetQueueAttributes(ctx, params)
|
return c.api.GetQueueAttributes(ctx, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetQueueUrl returns queue url.
|
||||||
|
func (c *Consumer) GetQueueUrl() string {
|
||||||
|
return c.url
|
||||||
|
}
|
||||||
|
|
|
@ -108,3 +108,8 @@ func (c *Consumer) GetQueueAttributes(ctx context.Context) (*aws_sqs.GetQueueAtt
|
||||||
}
|
}
|
||||||
return c.api.GetQueueAttributes(ctx, params)
|
return c.api.GetQueueAttributes(ctx, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetQueueUrl returns queue url.
|
||||||
|
func (c *Consumer) GetQueueUrl() string {
|
||||||
|
return c.url
|
||||||
|
}
|
||||||
|
|
|
@ -40,7 +40,8 @@ func NewEventSQS(consumer *sqs.Consumer, converter ConverterFunc, filterConsume
|
||||||
converter: converter,
|
converter: converter,
|
||||||
filterConsume: filterConsume,
|
filterConsume: filterConsume,
|
||||||
metrics: metrics,
|
metrics: metrics,
|
||||||
logger: logger}
|
logger: logger.With(zap.String("queueUrl", consumer.GetQueueUrl())),
|
||||||
|
}
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
opt(s)
|
opt(s)
|
||||||
}
|
}
|
||||||
|
@ -64,6 +65,7 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
q.logger.Debug("Received messages from SQS", zap.Int("count", len(messages)))
|
||||||
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
|
|
||||||
|
@ -72,17 +74,27 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal message to event
|
// unmarshal message to event
|
||||||
event, err := q.converter(sqsEvent.Message)
|
event, err := q.converter(sqsEvent.Message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error decoding event message from SQSEvent", zap.Error(err))
|
q.logger.Error("Error converting event message", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if event == nil {
|
if event == nil {
|
||||||
|
q.logger.Warn("Can not handle message", zap.String("body", *msg.Body))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ func (c *Consumer) processSourceTx(ctx context.Context, msg queue.ConsumerMessag
|
||||||
)
|
)
|
||||||
} else if errors.Is(err, ErrAlreadyProcessed) {
|
} else if errors.Is(err, ErrAlreadyProcessed) {
|
||||||
msg.Done()
|
msg.Done()
|
||||||
c.logger.Warn("Message already processed - skipping",
|
c.logger.Warn("Origin message already processed - skipping",
|
||||||
zap.String("trackId", event.TrackID),
|
zap.String("trackId", event.TrackID),
|
||||||
zap.String("vaaId", event.ID),
|
zap.String("vaaId", event.ID),
|
||||||
elapsedLog,
|
elapsedLog,
|
||||||
|
|
|
@ -121,7 +121,7 @@ func NewNotificationEvent(log *zap.Logger) ConverterFunc {
|
||||||
}
|
}
|
||||||
address, err := sdk.StringToAddress(tr.Attributes.EmitterAddress)
|
address, err := sdk.StringToAddress(tr.Attributes.EmitterAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error converting emitter address: %w", err)
|
return nil, fmt.Errorf("error converting emitter address [%s]: %w", tr.Attributes.EmitterAddress, err)
|
||||||
}
|
}
|
||||||
vaa := sdk.VAA{
|
vaa := sdk.VAA{
|
||||||
EmitterChain: sdk.ChainID(tr.Attributes.EmitterChain),
|
EmitterChain: sdk.ChainID(tr.Attributes.EmitterChain),
|
||||||
|
|
|
@ -39,7 +39,8 @@ func NewEventSqs(consumer *sqs_client.Consumer, converter ConverterFunc, metrics
|
||||||
chSize: 10,
|
chSize: 10,
|
||||||
metrics: metrics,
|
metrics: metrics,
|
||||||
converter: converter,
|
converter: converter,
|
||||||
logger: logger}
|
logger: logger.With(zap.String("queueUrl", consumer.GetQueueUrl())),
|
||||||
|
}
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
opt(s)
|
opt(s)
|
||||||
}
|
}
|
||||||
|
@ -63,6 +64,7 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
q.logger.Error("Error getting messages from SQS", zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
q.logger.Debug("Received messages from SQS", zap.Int("count", len(messages)))
|
||||||
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
expiredAt := time.Now().Add(q.consumer.GetVisibilityTimeout())
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
// unmarshal body to sqsEvent
|
// unmarshal body to sqsEvent
|
||||||
|
@ -70,16 +72,26 @@ func (q *SQS) Consume(ctx context.Context) <-chan ConsumerMessage {
|
||||||
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
err := json.Unmarshal([]byte(*msg.Body), &sqsEvent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
q.logger.Error("Error decoding message from SQS", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// unmarshal message to event
|
// unmarshal message to event
|
||||||
event, err := q.converter(sqsEvent.Message)
|
event, err := q.converter(sqsEvent.Message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
q.logger.Error("Error decoding vaaEvent message from SQSEvent", zap.Error(err))
|
q.logger.Error("Error converting event message", zap.Error(err))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if event == nil {
|
if event == nil {
|
||||||
|
q.logger.Warn("Can not handle message", zap.String("body", *msg.Body))
|
||||||
|
if err = q.consumer.DeleteMessage(ctx, msg.ReceiptHandle); err != nil {
|
||||||
|
q.logger.Error("Error deleting message from SQS", zap.Error(err))
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
q.metrics.IncVaaConsumedQueue(uint16(event.ChainID))
|
q.metrics.IncVaaConsumedQueue(uint16(event.ChainID))
|
||||||
|
|
Loading…
Reference in New Issue