mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-16 11:28:19 +00:00
fix(tableau): retry on InternalServerError 504 (#12213)
This commit is contained in:
parent
09a9b6eef9
commit
87e7b58ac6
@ -35,7 +35,10 @@ from tableauserverclient import (
|
|||||||
SiteItem,
|
SiteItem,
|
||||||
TableauAuth,
|
TableauAuth,
|
||||||
)
|
)
|
||||||
from tableauserverclient.server.endpoint.exceptions import NonXMLResponseError
|
from tableauserverclient.server.endpoint.exceptions import (
|
||||||
|
InternalServerError,
|
||||||
|
NonXMLResponseError,
|
||||||
|
)
|
||||||
from urllib3 import Retry
|
from urllib3 import Retry
|
||||||
|
|
||||||
import datahub.emitter.mce_builder as builder
|
import datahub.emitter.mce_builder as builder
|
||||||
@ -1196,6 +1199,24 @@ class TableauSiteSource:
|
|||||||
retry_on_auth_error=False,
|
retry_on_auth_error=False,
|
||||||
retries_remaining=retries_remaining - 1,
|
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:
|
except OSError:
|
||||||
# In tableauseverclient 0.26 (which was yanked and released in 0.28 on 2023-10-04),
|
# In tableauseverclient 0.26 (which was yanked and released in 0.28 on 2023-10-04),
|
||||||
# the request logic was changed to use threads.
|
# the request logic was changed to use threads.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user