From 92f84518d710c028a1040ef0cd5a705e290ea546 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 16 Jan 2023 15:34:25 +0100 Subject: [PATCH] Slack - introduced caching User and group query is expensive operation, this will speed up publishing of multiple instances --- .../slack/plugins/publish/integrate_slack_api.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openpype/modules/slack/plugins/publish/integrate_slack_api.py b/openpype/modules/slack/plugins/publish/integrate_slack_api.py index 5440817e30..1e06799f92 100644 --- a/openpype/modules/slack/plugins/publish/integrate_slack_api.py +++ b/openpype/modules/slack/plugins/publish/integrate_slack_api.py @@ -62,8 +62,16 @@ class IntegrateSlackAPI(pyblish.api.InstancePlugin): client = SlackPython3Operations(token, self.log) if "@" in message: - if users is None: + cache_key = "__cache_ids" + slack_ids = instance.context.data.get(cache_key, None) + if slack_ids is None: users, groups = client.get_users_and_groups() + instance.context.data[cache_key] = {} + instance.context.data[cache_key]["users"] = users + instance.context.data[cache_key]["groups"] = groups + else: + users = slack_ids["users"] + groups = slack_ids["groups"] message = self._translate_users(message, users, groups) msg_id, file_ids = client.send_message(channel,