Add retries to Slack

This commit is contained in:
Weves
2024-01-08 15:17:46 -08:00
committed by Chris Weaver
parent 879e873310
commit 7efd3ba42f

View File

@@ -13,6 +13,7 @@ from slack_sdk.web import SlackResponse
from danswer.configs.app_configs import INDEX_BATCH_SIZE from danswer.configs.app_configs import INDEX_BATCH_SIZE
from danswer.configs.constants import DocumentSource from danswer.configs.constants import DocumentSource
from danswer.connectors.cross_connector_utils.retry_wrapper import retry_builder
from danswer.connectors.interfaces import GenerateDocumentsOutput from danswer.connectors.interfaces import GenerateDocumentsOutput
from danswer.connectors.interfaces import LoadConnector from danswer.connectors.interfaces import LoadConnector
from danswer.connectors.interfaces import PollConnector from danswer.connectors.interfaces import PollConnector
@@ -35,19 +36,25 @@ MessageType = dict[str, Any]
# list of messages in a thread # list of messages in a thread
ThreadType = list[MessageType] ThreadType = list[MessageType]
basic_retry_wrapper = retry_builder()
def _make_paginated_slack_api_call( def _make_paginated_slack_api_call(
call: Callable[..., SlackResponse], **kwargs: Any call: Callable[..., SlackResponse], **kwargs: Any
) -> Generator[dict[str, Any], None, None]: ) -> Generator[dict[str, Any], None, None]:
return make_slack_api_call_paginated( return make_slack_api_call_paginated(
make_slack_api_rate_limited(make_slack_api_call_logged(call)) basic_retry_wrapper(
make_slack_api_rate_limited(make_slack_api_call_logged(call))
)
)(**kwargs) )(**kwargs)
def _make_slack_api_call( def _make_slack_api_call(
call: Callable[..., SlackResponse], **kwargs: Any call: Callable[..., SlackResponse], **kwargs: Any
) -> SlackResponse: ) -> SlackResponse:
return make_slack_api_rate_limited(make_slack_api_call_logged(call))(**kwargs) return basic_retry_wrapper(
make_slack_api_rate_limited(make_slack_api_call_logged(call))
)(**kwargs)
def get_channel_info(client: WebClient, channel_id: str) -> ChannelType: def get_channel_info(client: WebClient, channel_id: str) -> ChannelType: