我目前正在使用 AWS 的 SQS。每隔 60 秒,我的應用程式就會將所有訊息從佇列中拉出并進行處理。鑒于我在一個請求中最多只能檢索 10 條訊息,我想查詢佇列中的ApproximateNumberOfMessages. 佇列中的大約訊息數決定了我需要呼叫 SQS 多少次才能檢索佇列中的所有訊息。
當我查詢 SQS 的佇列屬性時,我得到:
{
'$metadata': {
httpStatusCode: 200,
requestId: '...',
extendedRequestId: undefined,
cfId: undefined,
attempts: 1,
totalRetryDelay: 0
},
Attributes: {
QueueArn: 'arn:...',
ApproximateNumberOfMessages: '0', <--- helpful
ApproximateNumberOfMessagesNotVisible: '0', <--- is this attribute included in the `ApproximateNumberOfMessages`
ApproximateNumberOfMessagesDelayed: '0', <--- is this attribute included in the `ApproximateNumberOfMessages`
CreatedTimestamp: '1641925448',
LastModifiedTimestamp: '1641925448',
VisibilityTimeout: '30',
MaximumMessageSize: '262144',
MessageRetentionPeriod: '345600',
DelaySeconds: '90',
RedrivePolicy: '{"deadLetterTargetArn":"arn:...","maxReceiveCount":4}',
ReceiveMessageWaitTimeSeconds: '0',
SqsManagedSseEnabled: 'false'
}
}
如上面的代碼塊所示,ApproximateNumberOfMessagesNotVisible和 是否ApproximateNumberOfMessagesDelayed包含在ApproximateNumberOfMessages值中?
uj5u.com熱心網友回復:
不,它們不包括在內。ApproximateNumberOfMessages是當前可重試的訊息數:
可從佇列中檢索的訊息數。
同樣對于標準佇列,這些值只是近似值,可能不代表存在的實際訊息數:
對于標準佇列,由于 Amazon SQS 的分布式架構,結果是近似的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408884.html
標籤:
