Skip to content

Commit ea01fa0

Browse files
authored
Revert "fix: set idle_shutdown to all RateCounters to be 1 hour (#1443)" (#1449)
This reverts commit 8951cd0.
1 parent a7ea695 commit ea01fa0

File tree

6 files changed

+16
-17
lines changed

6 files changed

+16
-17
lines changed

lib/realtime/rate_counter/rate_counter.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ defmodule Realtime.RateCounter do
1717
alias Realtime.RateCounter
1818
alias Realtime.Telemetry
1919

20-
@idle_shutdown :timer.hours(1)
20+
@idle_shutdown :timer.seconds(5)
2121
@tick :timer.seconds(1)
2222
@max_bucket_len 60
2323
@cache __MODULE__

lib/realtime/tenants/connect/start_counters.ex

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ defmodule Realtime.Tenants.Connect.StartCounters do
2727

2828
res =
2929
RateCounter.new(id,
30+
idle_shutdown: :infinity,
3031
telemetry: %{
3132
event_name: [:channel, :joins],
3233
measurements: %{limit: max_joins_per_second},
@@ -50,6 +51,7 @@ defmodule Realtime.Tenants.Connect.StartCounters do
5051

5152
res =
5253
RateCounter.new(key,
54+
idle_shutdown: :infinity,
5355
telemetry: %{
5456
event_name: [:channel, :events],
5557
measurements: %{limit: max_events_per_second},
@@ -70,6 +72,7 @@ defmodule Realtime.Tenants.Connect.StartCounters do
7072

7173
res =
7274
RateCounter.new(key,
75+
idle_shutdown: :infinity,
7376
telemetry: %{
7477
event_name: [:channel, :db_events],
7578
measurements: %{},

lib/realtime_web/channels/realtime_channel.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ defmodule RealtimeWeb.RealtimeChannel do
483483
GenCounter.new(id)
484484

485485
RateCounter.new(id,
486+
idle_shutdown: :infinity,
486487
telemetry: %{
487488
event_name: [:channel, :joins],
488489
measurements: %{limit: limits.max_joins_per_second},
@@ -530,6 +531,7 @@ defmodule RealtimeWeb.RealtimeChannel do
530531
GenCounter.new(key)
531532

532533
RateCounter.new(key,
534+
idle_shutdown: :infinity,
533535
telemetry: %{
534536
event_name: [:channel, :events],
535537
measurements: %{limit: limits.max_events_per_second},
@@ -550,6 +552,7 @@ defmodule RealtimeWeb.RealtimeChannel do
550552
GenCounter.new(key)
551553

552554
RateCounter.new(key,
555+
idle_shutdown: :infinity,
553556
telemetry: %{
554557
event_name: [:channel, :presence_events],
555558
measurements: %{limit: limits.max_events_per_second},
@@ -683,6 +686,7 @@ defmodule RealtimeWeb.RealtimeChannel do
683686
GenCounter.new(key)
684687

685688
RateCounter.new(key,
689+
idle_shutdown: :infinity,
686690
telemetry: %{event_name: [:channel, :db_events], measurements: %{}, metadata: %{tenant: tenant}}
687691
)
688692

lib/realtime_web/plugs/assign_tenant.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ defmodule RealtimeWeb.Plugs.AssignTenant do
4646
defp initialize_counters(tenant) do
4747
GenCounter.new(Tenants.requests_per_second_key(tenant))
4848
GenCounter.new(Tenants.events_per_second_key(tenant))
49-
RateCounter.new(Tenants.requests_per_second_key(tenant))
50-
RateCounter.new(Tenants.events_per_second_key(tenant))
49+
RateCounter.new(Tenants.requests_per_second_key(tenant), idle_shutdown: :infinity)
50+
RateCounter.new(Tenants.events_per_second_key(tenant), idle_shutdown: :infinity)
5151
end
5252
end

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule Realtime.MixProject do
44
def project do
55
[
66
app: :realtime,
7-
version: "2.40.0",
7+
version: "2.40.1",
88
elixir: "~> 1.17.3",
99
elixirc_paths: elixirc_paths(Mix.env()),
1010
start_permanent: Mix.env() == :prod,

test/realtime/rate_counter/rate_counter_test.exs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
defmodule Realtime.RateCounterTest do
2-
use Realtime.DataCase, async: true
3-
4-
import ExUnit.CaptureLog
2+
use Realtime.DataCase
53

64
alias Realtime.RateCounter
75
alias Realtime.GenCounter
@@ -20,15 +18,9 @@ defmodule Realtime.RateCounterTest do
2018

2119
test "rate counters shut themselves down when no activity occurs on the GenCounter" do
2220
term = {:domain, :metric, Ecto.UUID.generate()}
23-
24-
log =
25-
capture_log(fn ->
26-
{:ok, _} = RateCounter.new(term, idle_shutdown: 5)
27-
Process.sleep(25)
28-
assert {:error, _term} = RateCounter.get(term)
29-
end)
30-
31-
assert log =~ "idle_shutdown reached for: #{inspect(term)}"
21+
{:ok, _} = RateCounter.new(term, idle_shutdown: 5)
22+
Process.sleep(25)
23+
assert {:error, _term} = RateCounter.get(term)
3224
end
3325

3426
test "rate counters reset GenCounter to zero after one tick and average the bucket" do
@@ -42,7 +34,7 @@ defmodule Realtime.RateCounterTest do
4234
avg: 0.5,
4335
bucket: [0, 1],
4436
id: _id,
45-
idle_shutdown: 3_600_000,
37+
idle_shutdown: 5000,
4638
idle_shutdown_ref: _ref,
4739
max_bucket_len: 60,
4840
tick: 5,

0 commit comments

Comments
 (0)