Packages
tz
0.21.1
0.28.2
0.28.1
0.28.0
0.27.3
0.27.2
0.27.1
0.27.0
0.26.6
0.26.5
0.26.4
0.26.3
0.26.2
0.26.1
0.26.0
0.25.1
0.25.0
0.24.0
0.23.0
0.22.0
0.21.1
0.21.0
0.20.1
0.20.0
0.19.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Time zone support for Elixir
Current section
Files
Jump to
Current section
Files
lib/update_periodically.ex
defmodule Tz.UpdatePeriodically do
use GenServer
require Logger
alias Tz.HTTP
alias Tz.Updater
defp maybe_recompile() do
Logger.debug("Tz is checking for IANA time zone database updates")
Updater.maybe_recompile()
end
def start_link(opts) do
HTTP.get_http_client!()
GenServer.start_link(__MODULE__, opts)
end
def init(opts) do
maybe_recompile()
schedule_work(opts[:interval_in_days])
{:ok, %{opts: opts}}
end
def handle_info(:work, %{opts: opts}) do
maybe_recompile()
schedule_work(opts[:interval_in_days])
{:noreply, %{opts: opts}}
end
defp schedule_work(interval_in_days) do
interval_in_days = interval_in_days || 1
Process.send_after(self(), :work, interval_in_days * 24 * 60 * 60 * 1000)
end
end