Dynamically supervised GenServers that utilized the handle_continue callback and a sleep timer would be another way.
defp periodic_calculation do
#do some work
:timer.sleep(60000)
end
@impl true
def handle_continue(:my_timer, state) do
periodic_calculation()
{:noreply, state}
end






















