mirror of
https://github.com/team-alembic/ash_gen_server.git
synced 2024-09-19 12:53:34 +12:00
Merge pull request #20 from team-alembic/feat/reset-inactivity
feat: resets genserver inactivity with :keep_alive info message
This commit is contained in:
commit
31cb694267
3 changed files with 21 additions and 0 deletions
|
@ -122,6 +122,10 @@ defmodule AshGenServer.Server do
|
|||
end
|
||||
end
|
||||
|
||||
def handle_info(:keep_alive, state) do
|
||||
{:noreply, maybe_set_inactivity_timer(state)}
|
||||
end
|
||||
|
||||
defp primary_key_from_resource_and_changeset(resource, changeset) do
|
||||
resource
|
||||
|> Resource.Info.primary_key()
|
||||
|
|
|
@ -38,4 +38,17 @@ defmodule AshGenServer.ServerTest do
|
|||
refute state.record.nickname
|
||||
end
|
||||
end
|
||||
|
||||
describe "handle_info/3" do
|
||||
test "when send :keep_alive to server resets inactivity timer" do
|
||||
changeset =
|
||||
TimeTravel.Character
|
||||
|> Changeset.for_create(:create, %{name: "Biff Tannen", current_year: 2015})
|
||||
|
||||
{:ok, old_state} = Server.init([TimeTravel.Character, changeset])
|
||||
{:noreply, new_state} = Server.handle_info(:keep_alive, old_state)
|
||||
|
||||
refute old_state.inactivity_timer == new_state.inactivity_timer
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -37,4 +37,8 @@ defmodule TimeTravel.Character do
|
|||
create_timestamp(:created_at)
|
||||
update_timestamp(:updated_at)
|
||||
end
|
||||
|
||||
gen_server do
|
||||
inactivity_timeout(:timer.minutes(1))
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue