Quantum

Cron-like job scheduler for Elixir.

Hex.pm Version Build Status Coverage Status

Setup

To use Quantum in your projects, edit your mix.exs file and add Quantum as a dependency:

defp deps do
  [{:quantum, ">= 1.2.0"}]
end

Then, add Quantum to the list of applications in your mix.exs file:

def application do
  [applications: [:quantum]]
end

Usage

Configure your cronjobs in your config/config.exs like this:

config :quantum, cron: [
    "* * * * *": fn -> IO.puts("every minute") end,
    "*/2 * * * *": fn -> IO.puts("every two minutes") end,
    # Runs on 18, 20, 22, 0, 2, 4, 6:
    "0 18-6/2 * * *": fn -> IO.puts("it's late") end,
    # Runs every midnight:
    "@daily": &backup/0
]

If you want to add jobs on runtime, this is possible, too:

Quantum.add_job("1 * * * *", fn -> :ok end)

Contribution Process

This project uses the C4.1 process for all code changes.

“Everyone, without distinction or discrimination, SHALL have an equal right to become a Contributor under the terms of this contract.”

tl;dr

  1. Check for open issues or open a new issue to start a discussion around a feature idea or a bug
  2. Fork the quantum-elixir repository on Github to start making your changes
  3. Write a test which shows that the bug was fixed or that the feature works as expected
  4. Send a pull request
  5. Your pull request is merged and you are added to the list of contributors

License

Apache License, Version 2.0