NickTomlin

NickTomlin

Cannot compile quantum with Elixir 1.6.1

I’m attempting to add quantum to a phx.new project and encountering the following compiler error:

== Compilation error in file lib/quantum_phoenix/scheduler.ex ==
** (CompileError) lib/quantum_phoenix/scheduler.ex:2: Crontab.CronExpression.__struct__/0 is undefined, cannot expand struct Crontab.Cr
onExpression
    (stdlib) lists.erl:1354: :lists.mapfoldl/3
    lib/quantum_phoenix/scheduler.ex:2: (module)
    (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
    (elixir) lib/kernel/parallel_compiler.ex:198: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6

My application (lib/quantum_phoenix/application.ex):

defmodule QuantumPhoenix.Application do
  use Application

  def start(_type, _args) do
    import Supervisor.Spec

    children = [
      supervisor(QuantumPhoenix.Repo, []),
      supervisor(QuantumPhoenixWeb.Endpoint, []),
      worker(QuantumPhoenix.Scheduler, []),
    ]

    opts = [strategy: :one_for_one, name: QuantumPhoenix.Supervisor]
    Supervisor.start_link(children, opts)
  end

  def config_change(changed, _new, removed) do
    QuantumPhoenixWeb.Endpoint.config_change(changed, removed)
    :ok
  end
end

My quantum scheduler (lib/quantum_phoenix/scheduler.ex):

defmodule QuantumPhoenix.Scheduler do
  use Quantum.Scheduler, otp_app: :quantum_phoenix
end

And my config/dev.exs:

# ... all the phx.new defaults

config :quantum_phoenix, QuantumPhoenix.Scheduler,
  jobs: [
    phoenix_job: [
      schedule: "*/2 * * * *",
      task: {QuantumPhoenix.Task, :work, []},
    ]
  ]

I am using Phoenix 1.3.0 and elixir 1.6.1/OTP 20.

From what I understand (which is not much since i’m new to Elixir and Phoenix), this error typically involves trying to reference a namespaced module without specifying the full namespace. I can’t find anywhere in my own code where I’m incorrectly namespacing things so my assumption is that this is an issue how my phoenix project is interacting with Quantum. I have a similar setup in an on Phoenix project that compiles just fine.

Marked As Solved

OvermindDL1

OvermindDL1

Hmm I’m using it just fine on Elixir 1.6.1.

And Phoenix really should have absolutely nothing to do with this (so I’m fixing up the title). ^.^

This sounds most to me like a corrupt _build directory, wipe it and try again? If that still happens then minimize the issue and post is a public git repo after it is minimized. :slight_smile:

Also Liked

NickTomlin

NickTomlin

Blowing away _build seems to have done the trick. Thanks!

As I said, i’m new to elixir and phoenix, what is the typical reason behind something like this? All I did was do a phx.new and then add quantum and mix deps.get? (i’m happy to post that as an additional question if it’s preferred).

OvermindDL1

OvermindDL1

I only ever see it happen in two cases:

  1. Had an Erlang/Elixir version change (like upgrading the system versions, you want to recompile everything then).
  2. Using Windows (NTFS is a horrible filesystem).

^.^;

Where Next?

Popular in Questions Top

ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31586 112
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 44778 311
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

We're in Beta

About us Mission Statement