2016-05-19 2 views
0

Например, сообщение отправляется в очередь на 2016-05-19 23:29:05. И это получает потребитель по телефону 2016-05-19 23:30:05. После обработки сообщение удаляется с 2016-05-19 23:30:08. Это означает, что требуется 60 секунд от сообщения, отправленного в очередь, к получателю, которого он получил, и от сообщения, родившегося от мертвых, требуется 63 секунды.AWS SQS - Как узнать интервал времени, который требуется от «сообщения, отправленного в очередь», на «полученное сообщение»?

Эти показатели полезны для мониторинга того, как быстро потребитель может потреблять сообщения.

Чтобы получить время жизни сообщения, мне нужно вручную добавить атрибут timestamp каждому сообщению, когда оно отправлено в очередь. Потребитель будет извлекать временную метку и вычислять временной интервал.

Предоставляет ли SQS аналогичный API для получения времени жизни сообщения (я проверял API SQS и не повезло), или есть ли другая хорошая идея?

+1

Ответ НЕТ в SQS. Указанные функции являются накладными для большинства серверов MQ. – mootmoot

ответ

2

В сообщении SQS есть атрибуты, которые позволят вам измерить время, потраченное на сообщение в очереди.

Некоторые из атрибутов, которые вы можете использовать в SentTimestamp, CreatedTimestamp, LastModifiedTimestamp и т.д.

Я смотрел на яваскрипт SDK, и кажется, что некоторые атрибуты возвращаются только при явном запросе для http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property

Список всех атрибутов, доступных в сообщении SQS, см. В http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html