Skip to content

quiqupltd/ex_schedule

Repository files navigation

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.

About

Run tasks in a an interval basis

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages