fix(tableau): retry on InternalServerError 504 (#12213)

This commit is contained in:
Sergio Gómez Villamor 2024-12-24 10:46:19 +01:00 committed by GitHub
parent 09a9b6eef9
commit 87e7b58ac6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -35,7 +35,10 @@ from tableauserverclient import (
SiteItem,
TableauAuth,
)
from tableauserverclient.server.endpoint.exceptions import NonXMLResponseError
from tableauserverclient.server.endpoint.exceptions import (
InternalServerError,
NonXMLResponseError,
)
from urllib3 import Retry
import datahub.emitter.mce_builder as builder
@ -1196,6 +1199,24 @@ class TableauSiteSource:
retry_on_auth_error=False,
retries_remaining=retries_remaining - 1,
)
except InternalServerError as ise:
# In some cases Tableau Server returns 504 error, which is a timeout error, so it worths to retry.
if ise.code == 504:
if retries_remaining <= 0:
raise ise
return self.get_connection_object_page(
query=query,
connection_type=connection_type,
query_filter=query_filter,
fetch_size=fetch_size,
current_cursor=current_cursor,
retry_on_auth_error=False,
retries_remaining=retries_remaining - 1,
)
else:
raise ise
except OSError:
# In tableauseverclient 0.26 (which was yanked and released in 0.28 on 2023-10-04),
# the request logic was changed to use threads.