我有2个FIFO队列(优先级)。 我需要一次只处理一条消息。 我不能从高队列中获取消息 - 如果有的话 - 进程,如果没有 - 从低队列获取。如果飞行中有任何消息,我需要明白。 我需要检查是否有飞行中的消息以及要检查的队列。 所以我为每个队列加载ApproximateNumberOfMessages和ApproximateNumberOfMessagesNotVisible并进行分析。
这是我的代码部分
if (highPriorityQueueState.MessagesInFlight || lowPriorityQueueState.MessagesInFlight) {
return Promise.resolve();
}
if (highPriorityQueueState.MessagesInQueue) {
return _receiveMessageFromQueue(highPriorityQueueUrl);
}
if (lowPriorityQueueState.MessagesInQueue) {
return _receiveMessageFromQueue(lowPriorityQueueUrl);
}
return Promise.resolve();
问题是:我能依靠这个逻辑吗?亚马逊文档(http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-resources-required-process-messages.html)表示对于FIFO队列,这些值是准确的。但我不确定。也许有人知道如何在飞行中只有一条消息处理2个队列?