tarearbol v0.8.2 Tarearbol View Source
Tarearbol
module provides an interface to run tasks in easy way.
Examples
iex> result = Tarearbol.ensure(fn -> raise "¡?" end, attempts: 1, raise: false)
iex> {:error, %{job: _job, outcome: outcome}} = result
iex> {error, _stacktrace} = outcome
iex> error
%RuntimeError{message: "¡?"}
Link to this section Summary
Functions
Executes all the scheduled tasks immediately, cleaning up the queue
Ensures the task to be completed; restarts it when necessary
Same as Tarearbol.ensure/2
, but it raises on fail and returns the result
itself on successful execution
Executes Tarearbol.ensure_all_streamed/2
and collects tasks results
Runs a task specified by the first argument at a given time
Runs a task specified by the first argument in a given interval
Spawns the task for the immediate async execution
Spawns an ensured job asynchronously, passing all options given
Link to this section Functions
drain(jobs \\ Tarearbol.Application.jobs()) View Source
Executes all the scheduled tasks immediately, cleaning up the queue.
ensure(job, opts \\ []) View Source
Ensures the task to be completed; restarts it when necessary.
Possible options:
attempts
[default::infinity
] Might be any of@Tarearbol.Utils.interval
type (5
for five attempts,:random
for the random amount etc)delay
[default:1 msec
]. Might be any of@Tarearbol.Utils.interval
type (1_000
or1.0
for one second,:timeout
for five seconds etc)on_success
[default:nil
], the function to be called on successful execution (arity ∈ [0, 1]
or tuple{Mod, fun}
wherefun
is of arity zero or one.) When the arity of given function is1
, the result of task execution is passedon_retry
[default:nil
], same as above, called on retries after insuccessful attempts or one of[:debug, :info, :warn, :error]
atoms to log a retry with default loggeron_fail
[default:nil
], same as above, called when the task finally failed afterattempts
amount of insuccessful attempts
ensure!(job, opts \\ []) View Source
Same as Tarearbol.ensure/2
, but it raises on fail and returns the result
itself on successful execution.
ensure_all(jobs, opts \\ []) View Source
Executes Tarearbol.ensure_all_streamed/2
and collects tasks results.
ensure_all_streamed(jobs, opts \\ []) View Source
Wrapper for Task.Supervisor.async_stream/4
.
run_at(job, at, opts \\ [])
View Source
run_at(
Function.t() | {Module.t(), Atom.t(), List.t()},
DateTime.t() | String.t(),
Keyword.t()
) :: Task.t()
run_at( Function.t() | {Module.t(), Atom.t(), List.t()}, DateTime.t() | String.t(), Keyword.t() ) :: Task.t()
Runs a task specified by the first argument at a given time.
If the second parameter is a [DateTime
] struct, the task will be run once.
If the second parameter is a [Time
] struct, the task will be run at that time
on daily basis.
run_in(job, interval, opts \\ []) View Source
Runs a task specified by the first argument in a given interval.
See [Tarearbol.ensure/2
] for all possible variants of the interval
argument.
spawn(job, opts \\ []) View Source
Spawns the task for the immediate async execution.
spawn_ensured(job, opts) View Source
Spawns an ensured job asynchronously, passing all options given.