0

Amazon の AWS SDK for PHP を使用して、かなり負荷の高いクエリを実行する必要があります。
最も効率的な方法は、PHP の MultiCurlを使用することです。Guzzle には既に MultiCurlの機能が組み込まれているようです。

AWS SDK が提供する標準的な方法を使用すると、自動的に 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 に答える