Возможно ли зарегистрировать функцию обратного вызова для waitUntilDBInstanceAvailable ()?

Я использую AWS SDK для PHP и имею инструмент командной строки, ожидающий создания экземпляра базы данных с помощью waitUntilDBInstanceAvailable () :

$this->rdsClient->waitUntilDBInstanceAvailable([ 'DBInstanceIdentifier' => 'test' ]); 

Есть ли способ зарегистрировать функцию обратного вызова, так что каждый раз, когда SDK опрашивает RDS, вызывается моя функция обратного вызова?

Что-то вроде:

 $this->rdsClient->waitUntilDBInstanceAvailable([ 'DBInstanceIdentifier' => 'test', 'CallbackFunction' => function() { echo '.'; } ]); 

Это дало бы пользователю некоторую обратную связь о том, что сценарий все еще ждет и не зависает произвольно.

Док говорит:

    Входной массив использует параметры операции DescribeDBInstances и конкретных настроек официанта

    Но я не мог узнать, что это за настройки этого официанта .

    Related of "Возможно ли зарегистрировать функцию обратного вызова для waitUntilDBInstanceAvailable ()?"

    В AWS SDK для руководства пользователя PHP есть страница, посвященная официантам . На этой странице он рассказывает о том, как использовать прослушиватели событий с официантами. Вам нужно напрямую взаимодействовать с объектом официанта.

     // Get and configure the waiter object $waiter = $client->getWaiter('BucketExists') ->setConfig(array('Bucket' => 'my-bucket')) ->setInterval(10) ->setMaxAttempts(3); // Get the event dispatcher and register listeners for both events emitted by the waiter $dispatcher = $waiter->getEventDispatcher(); $dispatcher->addListener('waiter.before_attempt', function () { echo "Checking if the wait condition has been met…\n"; }); $dispatcher->addListener('waiter.before_wait', function () use ($waiter) { $interval = $waiter->getInterval(); echo "Sleeping for {$interval} seconds…\n"; }); $waiter->wait(); // Also Licensed under version 2.0 of the Apache License. 

    Вы можете делать то, что ищете, внедряя пользовательского официанта . К сожалению, это не так просто, как поддержка обратного вызова для существующего официанта, но вы все равно можете реализовать то, что ищете.