0

我需要使用 Amazon 的 AWS SDK for PHP 执行一些相当繁重的查询。
最有效的方法是使用PHP 的 MultiCurl。Guzzle似乎已经内置了 MultiCurl 的功能。

使用 AWS 开发工具包提供的标准方法会自动使用 MultiCurl 还是我必须直接指定它的用法?例如调用$sns->Publish()30 次。

谢谢!

4

1 回答 1

1

并行请求在 SDK 中的工作方式与普通 Guzzle 中的工作方式完全相同,并且确实利用了 MultiCurl。例如,您可以执行以下操作:

$message = 'Hello, world!';
$publishCommands = array();
foreach ($topicArns as $topicArn) {
    $publishCommands[] = $sns->getCommand('Publish', array(
        'TopicArn' => $topicArn,
        'Message'  => $message,
    ));
}

try {
    $successfulCommands = $sns->execute($publishCommands);
    $failedCommands = array();
} catch (\Guzzle\Service\Exception\CommandTransferException $e) {
    $successfulCommands = $e->getSuccessfulCommands();
    $failedCommands = $e->getFailedCommands();
}

foreach ($failedCommands as $failedCommand) { /* Handle any errors */ }

$messageIds = array();
foreach ($successfulCommands as $successfulCommand) {
    $messageIds[] = $successfulCommand->getResult()->get('MessageId');
}

// Also Licensed under version 2.0 of the Apache License.

AWS SDK for PHP 用户指南包含有关以这种方式使用命令对象的更多信息。

于 2013-09-16T15:49:34.300 回答