1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-06-08 10:26:36 +00:00

remove check after update

This commit is contained in:
mithereal 2022-08-01 10:49:15 -07:00
parent 28e4545f65
commit 2d5b31d61e
7 changed files with 112 additions and 3 deletions

View file

@ -6,6 +6,7 @@ defmodule Farside.Application do
require Logger
alias Farside.LastUpdated
alias Farside.Status
alias Farside.Instance.Check
alias Farside.Instance.Sync
alias Farside.Http
@ -40,6 +41,7 @@ defmodule Farside.Application do
]
),
{LastUpdated, DateTime.utc_now()},
{Status, :wait},
{PlugAttack.Storage.Ets, name: Farside.Throttle.Storage, clean_period: 60_000},
{DynamicSupervisor, strategy: :one_for_one, name: :server_supervisor},
{Registry, keys: :unique, name: :servers}

View file

@ -16,8 +16,11 @@ defmodule Farside.Instance.Check do
def poll() do
receive do
after
60_000 ->
run()
90_000 ->
if(Status.value() == :waiting) do
run()
end
poll()
end
end

View file

@ -4,6 +4,7 @@ defmodule Farside.Instance do
require Logger
alias Farside.Http
alias Farside.Status
@registry_name :servers
@update_file Application.fetch_env!(:farside, :update_file) <> ".json"
@ -59,6 +60,8 @@ defmodule Farside.Instance do
:update,
state
) do
Status.value(:checking)
service = :ets.lookup(String.to_atom(state.type), :default)
{_, service} = List.first(service)
@ -73,6 +76,8 @@ defmodule Farside.Instance do
Farside.save_results(@update_file, encoded)
Status.value(:wait)
{:noreply, state}
end

View file

@ -14,6 +14,5 @@ defmodule Farside.Instances do
LastUpdated.value(DateTime.utc_now())
Farside.Instance.Supervisor.update_children()
Farside.Instance.Supervisor.sync_empty_instances()
end
end

15
lib/farside/status.ex Normal file
View file

@ -0,0 +1,15 @@
defmodule Farside.Status do
use Agent
def start_link(initial_value) do
Agent.start_link(fn -> initial_value end, name: __MODULE__)
end
def value do
Agent.get(__MODULE__, & &1)
end
def value(new_value) do
Agent.update(__MODULE__, fn _ -> new_value end)
end
end