From f9eaebb037368ed65ed1a075359dd109f5a5db7a Mon Sep 17 00:00:00 2001 From: zajca Date: Wed, 18 Dec 2024 11:17:00 +0100 Subject: [PATCH 1/2] allow customize number of reties and backoff policy for runJob --- .../src/Connection/Bigquery/BigQueryClientWrapper.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php b/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php index a4dd13cae..f9e1b2e9e 100644 --- a/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php +++ b/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php @@ -56,9 +56,12 @@ public function runQuery(JobConfigurationInterface $query, array $options = []): */ public function runJob(JobConfigurationInterface $config, array $options = []): Job { - $retryPolicy = new SimpleRetryPolicy(5); - $backOffPolicy = new ExponentialRandomBackOffPolicy(10, 1.8, 300); - $proxy = new RetryProxy($retryPolicy, $backOffPolicy); + $options += [ + 'retryCount' => 5, + 'backOffPolicy' => new ExponentialRandomBackOffPolicy(10, 1.8, 300), + ]; + $retryPolicy = new SimpleRetryPolicy($options['retryCount']); + $proxy = new RetryProxy($retryPolicy, $options['backOffPolicy']); $job = $proxy->call(function () use ($config, $options): Job { return $this->startJob($config, $options); }); From b901e8f6baf01defaf751b0f399adff2cbfd0419 Mon Sep 17 00:00:00 2001 From: zajca Date: Wed, 18 Dec 2024 12:23:16 +0100 Subject: [PATCH 2/2] assert correct values --- .../src/Connection/Bigquery/BigQueryClientWrapper.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php b/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php index f9e1b2e9e..139d63714 100644 --- a/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php +++ b/packages/php-table-backend-utils/src/Connection/Bigquery/BigQueryClientWrapper.php @@ -60,6 +60,8 @@ public function runJob(JobConfigurationInterface $config, array $options = []): 'retryCount' => 5, 'backOffPolicy' => new ExponentialRandomBackOffPolicy(10, 1.8, 300), ]; + assert(is_int($options['retryCount']) && $options['retryCount'] > 0); + assert($options['backOffPolicy'] instanceof BackOffPolicyInterface); $retryPolicy = new SimpleRetryPolicy($options['retryCount']); $proxy = new RetryProxy($retryPolicy, $options['backOffPolicy']); $job = $proxy->call(function () use ($config, $options): Job {