Skip to content

Latest commit

 

History

History
75 lines (50 loc) · 1.82 KB

README.md

File metadata and controls

75 lines (50 loc) · 1.82 KB

ExSchedule

Build Status Package Version Coverage Status

This project provides a way to run tasks in an interval basis.

Documentation

Installation

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

Getting Started

After installation you can use the ExSchedule module and define the scheduled tasks using the schedule macro.

Usage

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

Authors

License

Copyright (c) 2018 Quiqup LTD, MIT License. See LICENSE.txt for further details.