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

fix reload

This commit is contained in:
mithereal 2022-07-29 22:56:17 -07:00
parent a992934e11
commit 7bd91cbcad
2 changed files with 19 additions and 13 deletions

View file

@ -38,7 +38,7 @@ defmodule Farside do
Farside.Instance.Supervisor.list() Farside.Instance.Supervisor.list()
|> Enum.reduce(%{}, fn service, acc -> |> Enum.reduce(%{}, fn service, acc ->
{_, data} = :ets.lookup(String.to_atom(service), :data) |> List.first() {_, data} = :ets.lookup(String.to_atom(service), :data) |> List.first()
IO.inspect(data, label: "data")
Map.put( Map.put(
acc, acc,
String.replace_prefix( String.replace_prefix(

View file

@ -62,20 +62,23 @@ defmodule Farside.Instance do
queries = Application.fetch_env!(:farside, :queries) queries = Application.fetch_env!(:farside, :queries)
request_urls = test_urls =
Enum.map(service.instances, fn x -> Enum.map(service.instances, fn x ->
x <> test_url =
EEx.eval_string( x <>
service.test_url, EEx.eval_string(
query: Enum.random(queries) service.test_url,
) query: Enum.random(queries)
)
{test_url, x}
end) end)
tasks = tasks =
for request_url <- request_urls do for {test_url, instance} <- test_urls do
Task.async(fn -> Task.async(fn ->
reply = Farside.Http.request(request_url, service.type) reply = Farside.Http.request(test_url, service.type)
{request_url, reply} {test_url, reply, instance}
end) end)
end end
@ -87,11 +90,14 @@ defmodule Farside.Instance do
res || Task.shutdown(task, :brutal_kill) res || Task.shutdown(task, :brutal_kill)
end) end)
|> Enum.reject(fn x -> x == nil end) |> Enum.reject(fn x -> x == nil end)
|> Enum.map(fn {_, value} -> value end) |> Enum.filter(fn {_, data} ->
|> Enum.filter(fn {instance_url, value} -> {_test_url, value, _instance} = data
value == :good value == :good
end) end)
|> Enum.map(fn {url, _} -> url end) |> Enum.map(fn {_, data} ->
{_test_url, _value, instance} = data
instance
end)
values = %{service | instances: instances} values = %{service | instances: instances}