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:
parent
28e4545f65
commit
2d5b31d61e
7 changed files with 112 additions and 3 deletions
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
15
lib/farside/status.ex
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue