Packages
tarearbol
0.2.1
1.12.0
1.11.2
1.11.1
1.11.0
1.10.4
1.10.3
1.10.2
1.10.0
1.9.102
1.9.101
1.9.100
1.9.99
1.9.11
1.9.10
1.9.9
1.9.8
1.9.7
1.9.6
1.9.5
1.9.4
1.9.3
1.9.2
1.9.1
1.9.0
1.8.2
1.8.1
1.8.0
1.7.0
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.0
0.99.11
0.99.10
0.99.9
0.99.8
0.99.7
0.99.6
0.99.4
0.99.3
0.99.2
0.99.1
0.99.0
0.14.1
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.0
0.9.6
0.9.5
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.0
The supervised tree of tasks, simplifying the process of handling: - recurrent tasks - retried tasks - long tasks - etc
Current section
Files
Jump to
Current section
Files
lib/tarearbol/errand.ex
defmodule Tarearbol.Errand do
@moduledoc false
require Logger
@default_opts [
repeatedly: false
]
def run_in(job, interval, opts \\ []) do
Tarearbol.Application.task!(fn ->
Process.put(:job, {job, opts, Tarearbol.Utils.add_interval(interval)})
Process.sleep(Tarearbol.Utils.interval(interval, value: 0))
Tarearbol.Job.ensure(job, opts)
end)
end
def run_at(job, at, opts \\ [])
def run_at(job, %DateTime{} = at, opts), do: raise "NYI: #{inspect {job, at, opts}}"
def run_at(job, at, opts) when is_binary(at),
do: run_at(job, Tarearbol.Utils.cron_to_time(at), opts)
def spawn(job, opts \\ []), do: run_in(job, 0, opts)
def opts, do: Application.get_env(:tarearbol, :errand_options, @default_opts)
end