From f3c1af06e208962178d21e4ad54ddfecd76ff4de Mon Sep 17 00:00:00 2001 From: Miles Roberts Date: Fri, 30 Jun 2023 12:46:22 -0700 Subject: [PATCH] run handlers loop in a single async task --- lib/slack/real_time/client.rb | 7 +++++-- lib/slack/real_time/stores/store.rb | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/slack/real_time/client.rb b/lib/slack/real_time/client.rb index ffa487e9..a4dbb897 100644 --- a/lib/slack/real_time/client.rb +++ b/lib/slack/real_time/client.rb @@ -23,6 +23,7 @@ def initialize(options = {}) @token ||= Slack.config.token @logger ||= (Slack::Config.logger || Slack::Logger.default) @web_client = Slack::Web::Client.new(token: token, logger: logger) + logger.info(to_s) {} end [:self, :team, *Stores::Base::CACHES].each do |store_method| @@ -234,8 +235,10 @@ def dispatch(event) def run_handlers(type, data) handlers = store.class.events[type.to_s] - handlers.each do |handler| - Async.run { store.instance_exec(data, self, &handler) } + Async.run do + handlers.each do |handler| + store.instance_exec(data, self, &handler) + end end rescue StandardError => e logger.error("#{self}##{__method__}") { e } diff --git a/lib/slack/real_time/stores/store.rb b/lib/slack/real_time/stores/store.rb index f0bd8f21..34361922 100644 --- a/lib/slack/real_time/stores/store.rb +++ b/lib/slack/real_time/stores/store.rb @@ -351,7 +351,7 @@ def team end if caches.include?(:public_channels) || caches.include?(:private_channels) || - caches.include?(:ims) || caches.include?(:mpims) + caches.include?(:ims) || caches.include?(:mpims) types = CONVERSATION_TYPES.slice(*caches).values.join(',') client.web_client.conversations_list(types: types) do |conversations| conversations.channels.each do |channel_data|