rails--rails/actioncable/test
Jonathan Hefner cc9a9e8503 Prevent thundering herd of Action Cable clients
This commit makes a few changes to the Action Cable client to prevent a
"thundering herd" of client reconnects after server connectivity loss:

* The client will wait a random amount between 1x and 3x of the stale
  threshold after the server's last ping before making the first
  reconnection attempt.
* Subsequent reconnection attempts now use exponential backoff instead
  of logarithmic backoff.  To allow the delay between reconnection
  attempts to increase slowly at first, the default exponentiation base
  is < 2.
* Random jitter is applied to each delay between reconnection attempts.

Co-authored-by: John Williams <john@veloshots.com>
2021-02-02 10:43:05 -06:00
..
channel Add method ActionCable::Channel#stream_or_reject_for to stream if record is present, otherwise reject the connection (#38375) 2020-03-07 10:09:08 -08:00
connection Do not allow subscribing to Base channel 2020-11-24 22:30:03 -05:00
javascript/src Prevent thundering herd of Action Cable clients 2021-02-02 10:43:05 -06:00
server Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin block 2018-12-21 06:12:42 +09:00
stubs Introduce ActionCable::Channel#stop_stream_from/for to unsubscribe specific streams (#37171) 2020-01-17 13:39:06 -08:00
subscription_adapter Use indifferent access for config hash in actioncable postgresql test 2020-06-10 13:52:43 +01:00
client_test.rb Passing in a Hash instance as non-kwargs parameters has to be curly braced 2019-09-07 03:21:45 +09:00
javascript_package_test.rb Enforce that actioncable compiled JS bundle is in sync with source code 2019-10-19 02:26:31 +02:00
test_helper.rb Revert "MethodCallAssertions is a regular player of the team ActiveSupport::TestCase now" 2019-08-02 00:24:21 -04:00
test_helper_test.rb Passing in a Hash instance as non-kwargs parameters has to be curly braced 2019-09-07 03:21:45 +09:00
worker_test.rb Inherit all actioncable's test classes from `ActionCable::TestCase` 2018-06-08 23:23:06 +03:00