1
0
mirror of https://github.com/algora-io/tv.git synced 2025-03-17 20:17:45 +02:00
algora-tv/lib/algora/terminate.ex
2024-09-01 02:15:24 +03:00

27 lines
522 B
Elixir

defmodule Algora.Terminate do
use GenServer
@terminate_interval :timer.hours(1)
def start_link(_) do
GenServer.start_link(__MODULE__, %{}, name: __MODULE__)
end
@impl true
def init(state) do
schedule_terminate()
{:ok, state}
end
@impl true
def handle_info(:terminate, state) do
Algora.Library.terminate_interrupted_streams()
schedule_terminate()
{:noreply, state}
end
defp schedule_terminate() do
Process.send_after(self(), :terminate, @terminate_interval)
end
end