AWS SQS FIFO ApproximateNumberOfMessages

时间:2017-06-12 11:26:49

标签: amazon-web-services queue amazon-sqs fifo

我有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个队列?

0 个答案:

没有答案