<?phprequire'vendor/autoload.php';useAws\Sqs\SqsClient;useAws\Exception\AwsException;$sqsClient=newSqsClient(['region'=>'us-west-2',// Change this to your AWS region'version'=>'latest','credentials'=>['key'=>'YOUR_AWS_ACCESS_KEY','secret'=>'YOUR_AWS_SECRET_KEY']]);$queueUrl='https://sqs.us-west-2.amazonaws.com/123456789012/your-queue-name';// Replace with your SQS queue URLtry{$result=$sqsClient->sendMessage(['QueueUrl'=>$queueUrl,'MessageBody'=>'This is a test message sent to SQS.','MessageAttributes'=>['AttributeOne'=>['DataType'=>'String','StringValue'=>'Attribute value'],'AttributeTwo'=>['DataType'=>'Number','StringValue'=>'123']]]);echo"Message sent successfully. Message ID: ".$result->get('MessageId')."\n";}catch(AwsException$e){echo"Error sending message to SQS: ".$e->getMessage()."\n";}
队列消费任务
<?phprequire'vendor/autoload.php';useAws\Sqs\SqsClient;useAws\Exception\AwsException;// AWS SQS configuration$sqsClient=newSqsClient(['region'=>'us-west-2',// Replace with your region'version'=>'latest','credentials'=>['key'=>'YOUR_AWS_ACCESS_KEY','secret'=>'YOUR_AWS_SECRET_KEY']]);$queueUrl='https://sqs.us-west-2.amazonaws.com/123456789012/your-queue-name';// Replace with your SQS queue URL// Infinite loop to keep the script runningwhile(true){try{// Receive message from SQS$result=$sqsClient->receiveMessage(['QueueUrl'=>$queueUrl,'MaxNumberOfMessages'=>1,// Set to 1 for single message at a time'WaitTimeSeconds'=>20// Long polling for 20 seconds]);if(!empty($result->get('Messages'))){foreach($result->get('Messages')as$message){// Process the messageecho"Processing message: ".$message['Body']."\n";// Add custom logic here to handle the message// ...// Delete message from SQS after processing$sqsClient->deleteMessage(['QueueUrl'=>$queueUrl,'ReceiptHandle'=>$message['ReceiptHandle']]);echo"Message deleted from queue.\n";}}else{echo"No messages received. Waiting...\n";}}catch(AwsException$e){echo"Error receiving or processing message: ".$e->getMessage()."\n";}// Add a delay to avoid hitting SQS rate limits and to avoid excessive CPU usagesleep(1);// Adjust sleep duration as needed}