diff --git a/metadata-ingestion/setup.py b/metadata-ingestion/setup.py index 2cfdf9837f45ad..c91dbf709e6d86 100644 --- a/metadata-ingestion/setup.py +++ b/metadata-ingestion/setup.py @@ -312,7 +312,7 @@ powerbi_report_server = {"requests", "requests_ntlm"} -slack = {"slack-sdk==3.18.1"} +slack = {"slack-sdk==3.18.1", "tenacity>=8.0.1",} databricks = { # 0.1.11 appears to have authentication issues with azure databricks diff --git a/metadata-ingestion/src/datahub/ingestion/source/slack/slack.py b/metadata-ingestion/src/datahub/ingestion/source/slack/slack.py index 00b783a89774cc..6d147e27405818 100644 --- a/metadata-ingestion/src/datahub/ingestion/source/slack/slack.py +++ b/metadata-ingestion/src/datahub/ingestion/source/slack/slack.py @@ -5,6 +5,8 @@ from pydantic import Field, SecretStr from slack_sdk import WebClient +from tenacity import retry, wait_exponential +from tenacity.before_sleep import before_sleep_log import datahub.emitter.mce_builder as builder from datahub.configuration.common import ConfigModel @@ -294,6 +296,10 @@ def populate_slack_id_from_email(self, user_obj: CorpUser) -> None: return raise e + @retry( + wait=wait_exponential(multiplier=2, min=4, max=60), + before_sleep=before_sleep_log(logger, logging.ERROR, True), + ) def get_user_to_be_updated(self) -> Iterable[CorpUser]: graphql_query = textwrap.dedent( """