Skip to content

Commit

Permalink
supervisors 1
Browse files Browse the repository at this point in the history
  • Loading branch information
hexisdylan committed Jul 27, 2022
1 parent 8c655a4 commit 8c66ca8
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 10 deletions.
24 changes: 17 additions & 7 deletions lib/pledge_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,21 @@ defmodule Servy.PledgeServer do
defstruct cache_size: 3, pledges: []
end

# def child_spec(arg) do
# %{
# id: Servy.PledgeServer,
# restart: :temporary,
# shutdown: 5000,
# start: {Servy.PledgeServer, :start_link, [[]]},
# type: :worker
# }
# end

# Client Interface

def start do
def start_link(_arg) do
IO.puts("Starting the pledge server...")
GenServer.start(__MODULE__, %State{}, name: @name)
GenServer.start_link(__MODULE__, %State{}, name: @name)
end

def create_pledge(name, amount) do
Expand Down Expand Up @@ -87,13 +97,13 @@ end

alias Servy.PledgeServer

{:ok, pid} = PledgeServer.start()
# {:ok, pid} = PledgeServer.start()

send(pid, {:stop, "hammertime"})
# send(pid, {:stop, "hammertime"})

PledgeServer.set_cache_size(4)

IO.inspect(PledgeServer.create_pledge("larry", 10))
# IO.inspect(PledgeServer.create_pledge("larry", 10))

# PledgeServer.clear()

Expand All @@ -102,8 +112,8 @@ IO.inspect(PledgeServer.create_pledge("larry", 10))
# IO.inspect(PledgeServer.create_pledge("daisy", 40))
# IO.inspect(PledgeServer.create_pledge("grace", 50))

IO.inspect(PledgeServer.recent_pledges())
# IO.inspect(PledgeServer.recent_pledges())

IO.inspect(PledgeServer.total_pledged())
# IO.inspect(PledgeServer.total_pledged())

# IO.inspect(Process.info(pid, :messages))
7 changes: 4 additions & 3 deletions lib/sensor_server.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ defmodule Servy.SensorServer do
@name :sensor_server

# :timer.minutes(60)
@refresh_interval :timer.seconds(5)
@refresh_interval :timer.seconds(60)
use GenServer

# Client Interface

def start do
GenServer.start(__MODULE__, %{}, name: @name)
def start_link(interval) do
IO.puts("Starting the sensor server with #{interval} min refresh...")
GenServer.start_link(__MODULE__, %{}, name: @name)
end

def get_sensor_data do
Expand Down
17 changes: 17 additions & 0 deletions lib/services_supervisor.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
defmodule Servy.ServicesSupervisor do
use Supervisor

def start_link do
IO.puts("Starting the services supervisor...")
Supervisor.start_link(__MODULE__, :ok, name: __MODULE__)
end

def init(:ok) do
children = [
Servy.PledgeServer,
{Servy.SensorServer, 60}
]

Supervisor.init(children, strategy: :one_for_one)
end
end

0 comments on commit 8c66ca8

Please sign in to comment.