Hello dear Elixir enthusiasts,
excuse my possible nooby coding, i’m new to the elixir/erlang world.
I’m currently trying to setup an application which will send monthly/daily reports via email.
I managed to get the part working where an email gets send etc. but i failed to setup a scheduler which performs a task to send the email periodically or at a specific date.
I tried it with quantum because it was the most recommended!
Because it did not work inside my existing application i tried to set quantum up from scratch on a fresh native elixir project by following this documentation hexdocs.pm/quantum/, naming it
:quantum_example
This is the code i used (it looks nearly like the one of the documentation):
the deps part of mix.exs:
defp deps do
[
{:quantum, "~> 3.0"}
# {:dep_from_hexpm, "~> 0.3.0"},
# {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
]
end
The scheduler:
defmodule QuantumExample.Scheduler do
use Quantum, otp_app: :quantum_example
end
The application’s supervision tree:
defmodule QuantumExample.Application do
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
QuantumExample.Scheduler
]
opts = [strategy: :one_for_one, name: Quantum.Supervisor]
Supervisor.start_link(children, opts)
end
end
And to test its functionality i set up this config with IO.puts stuff to see if it is doing where i want it to do it:
import Config
config :logger, level: :debug
config :quantum_example, QuantumExample.Scheduler,
jobs: [
{"@secondly", fn -> IO.puts("this is a secondly testoutput!") end},
{"@minutely", fn -> IO.puts("this is a minutely testoutput!") end},
]
My Problem is that it does not even do anything at all. the quantum_example application starts (iex -S mix or mix run --no-halt
) without any error but neither every second nor every minute i get an IO.puts output. Not even the logger gives something. Not even saying a job got added or startet or failed.
I am sure I just failed to do the configuration properly. It feels like quantum does not even get started…
Btw I am on Elixir 1.10 and used quantum 3.0.
I appreciate any form of advise what to try out or where I took a wrong turn!
Thanks in advance everybody (: