ExSchedule v0.1.0 ExSchedule
Module providing a way to declare actions happening on an interval basis.
Example
defmodule Quiqup.Schedules.Developer do
use ExSchedule
schedule every: {6, :hours} do
Developer.eat(:pizza)
end
schedule every: :hour, first_in: {20, :minutes} do
Developer.drink(:coffee)
end
end
Supported options:
Intervals
every
: The interval on which to run the task
first_in
: How much time to wait before the first run, defaults to 0
Examples
schedule every: :millisecond, do: Task.execute # every millisecond
schedule every: :second, do: Task.execute # every second
schedule every: :minute, do: Task.execute # every minute
schedule every: :hour, do: Task.execute # every hour
schedule every: :day, do: Task.execute # every day
schedule every: {2, :milliseconds}, do: Task.execute # every 2 milliseconds
schedule every: {2, :seconds}, do: Task.execute # every 2 seconds
schedule every: {2, :minutes}, do: Task.execute # every 2 minutes
schedule every: {2, :hours}, do: Task.execute # every 2 hours
schedule every: {2, :days}, do: Task.execute # every 2 days
schedule every: {2, :hours}, first_in: 0, do:
Task.execute # every 2 hours first in 0 seconds
end
schedule every: {2, :hours}, first_in: {20, :minutes} do
Task.execute # every 2 hours first in 20 minutes
end
Failure handling
:max_failures
- Number of times to fail for the task process to be restarted, defaults to :infinity
Examples
schedule every: {2, :days}, max_failures: 5, do: something
Link to this section Summary
Link to this section Functions
Link to this function
interval(n)
A macro that defines a recurrent task