7
7
import pydantic
8
8
import requests
9
9
10
- from data_diff .errors import DataDiffDatasourceIdNotFoundError
10
+ from data_diff .errors import DataDiffCloudDiffFailed , DataDiffCloudDiffTimedOut , DataDiffDatasourceIdNotFoundError
11
11
12
12
from ..utils import getLogger
13
13
@@ -248,8 +248,8 @@ def create_data_diff(self, payload: TCloudApiDataDiff) -> int:
248
248
def poll_data_diff_results (self , diff_id : int ) -> TCloudApiDataDiffSummaryResult :
249
249
summary_results = None
250
250
start_time = time .monotonic ()
251
- sleep_interval = 5 # starts at 5 sec
252
- max_sleep_interval = 30
251
+ sleep_interval = 3
252
+ max_sleep_interval = 20
253
253
max_wait_time = 300
254
254
255
255
diff_url = f"{ self .host } /datadiffs/{ diff_id } /overview"
@@ -260,13 +260,15 @@ def poll_data_diff_results(self, diff_id: int) -> TCloudApiDataDiffSummaryResult
260
260
if response_json ["status" ] == "success" :
261
261
summary_results = response_json
262
262
elif response_json ["status" ] == "failed" :
263
- raise Exception (f"Diff failed: { str (response_json )} " )
263
+ raise DataDiffCloudDiffFailed (f"Diff failed: { str (response_json )} " )
264
264
265
265
if time .monotonic () - start_time > max_wait_time :
266
- raise Exception (f"Timed out waiting for diff results. Please, go to the UI for details: { diff_url } " )
266
+ raise DataDiffCloudDiffTimedOut (
267
+ f"Timed out waiting for diff results. Please, go to the UI for details: { diff_url } "
268
+ )
267
269
268
270
time .sleep (sleep_interval )
269
- sleep_interval = min (sleep_interval * 2 , max_sleep_interval )
271
+ sleep_interval = min (sleep_interval + 1 , max_sleep_interval )
270
272
271
273
return TCloudApiDataDiffSummaryResult .from_orm (summary_results )
272
274
0 commit comments