diff options
Diffstat (limited to 'lib/action_cable/server.rb')
-rw-r--r-- | lib/action_cable/server.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/action_cable/server.rb b/lib/action_cable/server.rb index 10c94734ef..d1b7e14b53 100644 --- a/lib/action_cable/server.rb +++ b/lib/action_cable/server.rb @@ -1,10 +1,11 @@ -Celluloid::Actor[:worker_pool] = ActionCable::Worker.pool(size: 100) - module ActionCable class Server class_attribute :registered_channels self.registered_channels = Set.new + class_attribute :worker_pool_size + self.worker_pool_size = 100 + class << self def register_channels(*channel_classes) self.registered_channels += channel_classes @@ -13,6 +14,10 @@ module ActionCable def call(env) new(env).process end + + def worker_pool + @worker_pool ||= ActionCable::Worker.pool(size: worker_pool_size) + end end def initialize(env) @@ -27,11 +32,11 @@ module ActionCable @websocket.on(:message) do |event| message = event.data - Celluloid::Actor[:worker_pool].async.received_data(self, message) if message.is_a?(String) + self.class.worker_pool.async.received_data(self, message) if message.is_a?(String) end @websocket.on(:close) do |event| - Celluloid::Actor[:worker_pool].async.cleanup_subscriptions(self) + self.class.worker_pool.async.cleanup_subscriptions(self) end @websocket.rack_response |