M lib/triglav/application.ex => lib/triglav/application.ex +1 -0
@@ 15,6 15,7 @@ defmodule Triglav.Application do
TriglavWeb.Telemetry,
{Phoenix.PubSub, name: Triglav.PubSub},
TriglavWeb.Endpoint,
+ Triglav.PublicTransport.Loader
]
end
A lib/triglav/public_transport/loader.ex => lib/triglav/public_transport/loader.ex +18 -0
@@ 0,0 1,18 @@
+defmodule Triglav.PublicTransport.Loader do
+ @mode if Mix.env() == :prod, do: :auto, else: :manual
+
+ def child_spec(_arg) do
+ Periodic.child_spec(
+ id: __MODULE__,
+ mode: @mode,
+ run: &Triglav.PublicTransport.update_all/0,
+ every: :timer.minutes(1),
+ when: &run?/0
+ )
+ end
+
+ defp run?() do
+ dttm = DateTime.now!("Europe/Zagreb")
+ dttm.hour == 5 and dttm.minute == 0
+ end
+end
M mix.exs => mix.exs +1 -0
@@ 49,6 49,7 @@ defmodule Triglav.MixProject do
{:jason, "~> 1.0"},
{:mint, "~> 1.4"},
{:nimble_csv, "~> 1.2"},
+ {:parent, "~> 0.12.1"},
{:phoenix, "~> 1.6.0"},
{:phoenix_ecto, "~> 4.1"},
{:phoenix_html, "~> 3.0"},