Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Garçons na versão 3 AWS SDK for PHP - AWS SDK for PHP

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Garçons na versão 3 AWS SDK for PHP

Os waiters ajudam a facilitar o trabalho com sistemas eventualmente consistentes fornecendo uma maneira abstraída de esperar até que um recurso entre em um estado específico sondando o recurso. Você pode encontrar uma lista dos garçons atendidos por um cliente visualizando a APIdocumentação de uma única versão de um cliente de serviço. Para navegar até lá, acesse a página do cliente na API documentação e navegue até o número da versão específica (representado por uma data) e role para baixo até a seção “Garçons”. Este link levará você à seção de waiters do S3.

No exemplo a seguir, o cliente do Amazon S3 é usado para criar um bucket. Em seguida, o waiter é usado para aguardar até que o bucket exista.

// Create a bucket $s3Client->createBucket(['Bucket' => 'amzn-s3-demo-bucket']); // Wait until the created bucket is available $s3Client->waitUntil('BucketExists', ['Bucket' => 'amzn-s3-demo-bucket']);

Se o waiter precisar sondar o bucket por um número excessivo de vezes, ele gerará uma exceção \RuntimeException.

Configuração do waiter

Os waiters são acionados por uma matriz associativa de opções de configuração. Todas as opções usadas por um determinado waiter têm valores padrão, mas eles podem ser substituídos para oferecer suporte a diferentes estratégias de espera.

Você pode modificar as opções de configuração do waiter passando uma matriz associativa de opções do @waiter para o argumento $args dos métodos waitUntil() e getWaiter() de um cliente.

// Providing custom waiter configuration options to a waiter $s3Client->waitUntil('BucketExists', [ 'Bucket' => 'amzn-s3-demo-bucket', '@waiter' => [ 'delay' => 3, 'maxAttempts' => 10 ] ]);
delay (int)

Número de segundos de atraso entre tentativas de sondagem. Cada waiter tem um valor de configuração padrão de delay, mas você pode precisar modificar essa configuração para casos de uso específicos.

maxAttempts (int)

O número máximo de tentativas de sondagem a enviar antes do waiter falhar. Essa opção garante que você não espere por um recurso indefinidamente. Cada waiter tem um valor de configuração padrão de maxAttempts, mas você pode precisar modificar essa configuração para casos de uso específicos.

initDelay (int)

Quantidade de tempo em segundos para esperar antes da primeira tentativa de sondagem. Isso pode ser útil ao esperar por um recurso que você sabe que demorará algum tempo para entrar no estado desejado.

before (callable)

Uma função que PHP pode ser chamada que é invocada antes de cada tentativa. A função que pode ser chamada é invocada com o comando Aws\CommandInterface que está prestes a ser executado e o número de tentativas que foram executadas até agora. Os usos de before callable podem ser para modificar comandos antes que eles sejam executados ou forneçam informações de progresso.

use Aws\CommandInterface; $s3Client->waitUntil('BucketExists', [ 'Bucket' => 'amzn-s3-demo-bucket', '@waiter' => [ 'before' => function (CommandInterface $command, $attempts) { printf( "About to send %s. Attempt %d\n", $command->getName(), $attempts ); } ] ]);

Espera assíncrona

Além da espera de forma síncrona, você pode invocar um waiter para esperar de forma assíncrona enquanto envia outras solicitações ou espera por vários recursos de uma vez.

Você pode acessar uma promessa de waiter recuperando um waiter de um cliente usando o método getWaiter($name, array $args = []) do cliente. Use o método promise() de um waiter para iniciar o waiter. Um promessa de waiter é cumprida com a última Aws\CommandInterface que foi executada no waiter e rejeitada com uma RuntimeException em caso de erro.

use Aws\CommandInterface; $waiterName = 'BucketExists'; $waiterOptions = ['Bucket' => 'amzn-s3-demo-bucket']; // Create a waiter promise $waiter = $s3Client->getWaiter($waiterName, $waiterOptions); // Initiate the waiter and retrieve a promise $promise = $waiter->promise(); // Call methods when the promise is resolved. $promise ->then(function () { echo "Waiter completed\n"; }) ->otherwise(function (\Exception $e) { echo "Waiter failed: " . $e . "\n"; }); // Block until the waiter completes or fails. Note that this might throw // a \RuntimeException if the waiter fails. $promise->wait();

Expor garçons baseados em promessas API permite alguns casos de uso poderosos e relativamente baixos. Por exemplo, e se você quisesse esperar por vários recursos, e fazer algo com o primeiro waiter que foi resolvido com êxito?

use Aws\CommandInterface; // Create an array of waiter promises $promises = [ $s3Client->getWaiter('BucketExists', ['Bucket' => 'a'])->promise(), $s3Client->getWaiter('BucketExists', ['Bucket' => 'b'])->promise(), $s3Client->getWaiter('BucketExists', ['Bucket' => 'c'])->promise() ]; // Initiate a race between the waiters, fulfilling the promise with the // first waiter to complete (or the first bucket to become available) $any = Promise\any($promises) ->then(function (CommandInterface $command) { // This is invoked with the command that succeeded in polling the // resource. Here we can know which bucket won the race. echo "The {$command['Bucket']} waiter completed first!\n"; }); // Force the promise to complete $any->wait();
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.