lennart

lennart

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 (:

Showing Posts 1 to 4

kokolegorille

kokolegorille

Hello and welcome,
Well, it looks good, I reproduced it by just copy/paste your topic and it worked.

18:21:27.891 [debug] [:nonode@nohost][Elixir.Quantum.Executor] Task for job #Reference<0.1224732984.3074162690.196567> started on node nonode@nohost
this is a secondly testoutput!

Did You create the project with --sup?
Do You have a /config/config.exs, with name ending with .exs?

lennart

lennart OP

Wow, thanks for your fast reply!
well no i did not generate it with --sup. But i tried it with --sup and now it works for me too! thank u so much!
My question now is: is there a way to generate the otp app skeleton in my existing project? or do i have to create a new project and feed it with all my existing modules?

hauleth

hauleth

In your mix.exs in your application/0 function you need to have mod: {QuantumExample.Application, []}. So your mix.exs will look something like:

defmodule QuantumExample.Mixproject do
  # …

  def application do
    [
      mod: {QuantumExample.Application, []}
    ]
  end

  # …
end
kokolegorille

kokolegorille

Is it an umbrella project?

If yes it will be easy, if not You can package into a module, and add to dependencies…

Or just copy file, and configure accordingly.

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews