使用AWS SDK for JavaScript中的AWS.SQS.receiveMessage方法来接收消息时,可以设置参数WaitTimeSeconds为0,以确保脚本不会等待消息。
以下是一个使用Node.js的示例代码:
const AWS = require('aws-sdk');
const sqs = new AWS.SQS({region: 'us-west-2'});
const params = {
QueueUrl: 'YOUR_QUEUE_URL',
MaxNumberOfMessages: 1,
WaitTimeSeconds: 0 // 设置为0,确保不会等待消息
};
sqs.receiveMessage(params, (err, data) => {
if (err) {
console.log("Error receiving message:", err);
} else if (data.Messages) {
console.log("Received message:", data.Messages[0].Body);
// 处理消息
// 删除消息
const deleteParams = {
QueueUrl: 'YOUR_QUEUE_URL',
ReceiptHandle: data.Messages[0].ReceiptHandle
};
sqs.deleteMessage(deleteParams, (err, data) => {
if (err) {
console.log("Error deleting message:", err);
} else {
console.log("Message deleted successfully");
}
});
} else {
console.log("No messages in the queue");
}
});
在上述代码中,将WaitTimeSeconds设置为0确保receiveMessage方法不会等待消息。如果队列中有可用的消息,它会立即返回消息,否则会返回一个没有消息的响应。