elasticmq icon indicating copy to clipboard operation
elasticmq copied to clipboard

Needs clarification ...

Open BruceGitHub opened this issue 3 years ago • 1 comments

When I set the parameter waitTimeSeconds for the receiveMessage ElasticMac returns an error

'InvalidParameterValue; see the SQS docs.'

But I have not found any way to configure this parameter,

Only this ReceiveMessageWaitTimeSeconds from createQueue(SDK v2) however, this produces the same error when I call createQueue:

export type QueueAttributeName = "All"|"Policy"|"VisibilityTimeout"|"MaximumMessageSize"|"MessageRetentionPeriod"|"ApproximateNumberOfMessages"|"ApproximateNumberOfMessagesNotVisible"|"CreatedTimestamp"|"LastModifiedTimestamp"|"QueueArn"|"ApproximateNumberOfMessagesDelayed"|"DelaySeconds"|"ReceiveMessageWaitTimeSeconds"|"RedrivePolicy"|"FifoQueue"|"ContentBasedDeduplication"|"KmsMasterKeyId"|"KmsDataKeyReusePeriodSeconds"|"DeduplicationScope"|"FifoThroughputLimit"|"RedriveAllowPolicy"|"SqsManagedSseEnabled"|string;

I'm not clear how to unlock this condition ...

Snipped to reproduce the condition:

    const createParams: AWS.SQS.Types.CreateQueueRequest = {
      QueueName: 'http://elasticmq:9324/queue/test_queue",
      Attributes: {
        DelaySeconds: '0',
        MessageRetentionPeriod: '86400',
      },
    };
    const result = await sqs.createQueue(createParams).promise();
    if (result.$response.error) {
      throw new Error(
        `Error while creating queue: ${result.$response.error.message}`,
      );
    }

    const receiveParams = {
      QueueUrl: 'http://elasticmq:9324/queue/test_queue',
      AttributeNames: [],
      MaxNumberOfMessages: 1,
      WaitTimeSeconds: 30,
      VisibilityTimeout: 60,
    };
    const res = await sqs.receiveMessage(receiveParams).promise();

Error

InvalidParameterValue; see the SQS docs.

If I use WaitTimeSeconds: 20 (the default value when elasticmq creates the queue), run correctly

BruceGitHub avatar Nov 11 '22 16:11 BruceGitHub

If I'm not mistaken 20 is the maximum wait time for SQS.

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html#sqs-long-polling.

The maximum long polling wait time is 20 seconds

ccrvlh avatar Mar 06 '24 15:03 ccrvlh