Quantum

Cron-like job scheduler for Elixir.

Hex.pm Version Hex docs 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.2"}]
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

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 problem you have found.
  2. Issue names should be in the format “Problem: description of the problem“.
  3. Fork the quantum-elixir repository on Github to start making your changes
  4. If possible, write a test which shows that the problem was solved. Code coverage must remain at 100%.
  5. Send a pull request.
  6. Pull request names should be in the format “Solution: description of your solution
  7. Your pull request is merged and you are added to the list of contributors

License

Apache License, Version 2.0