This project provides a way to run tasks in an interval basis.
The package can be installed by adding ex_schedule
to your list of dependencies in mix.exs
:
def deps do
[
{:ex_schedule, "~> 0.2.0"}
]
end
After installation you can use the ExSchedule
module and define the scheduled tasks using the schedule
macro.
Define a schedule module with recurring tasks:
defmodule YourApp.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
Add the module to your supervision tree:
defmodule YourApp.Application do
use Application
import Supervisor.Spec
def start(_type, _args) do
opts = [strategy: :one_for_one, name: YourApp.Supervisor]
children = [supervisor(YourApp.Schedules.Developer, [[name: :developer_schedule]])]
Supervisor.start_link(children, opts)
end
end
- Dimitrios Zorbas (Zorbash)
- Luiz Varela (LuizVarela)
Copyright (c) 2018 Quiqup LTD, MIT License. See LICENSE.txt for further details.