quantum-elixir / quantum-core

:watch: Cron-like job scheduler for Elixir
https://hexdocs.pm/quantum/
Apache License 2.0
2.31k stars 148 forks source link

The last example of configuration fails normalization #604

Closed fly49 closed 6 months ago

fly49 commented 7 months ago

Hello, in the docs there is one way of setting a job mentioned, which is not working:

config :your_app, YourApp.Scheduler,
  jobs: [
    ...
    # Runs every midnight:
    {"@daily",                 {Backup, :backup, []}, state: :inactive}
  ]

My testing configuration:

config :test_app, TestApp.Scheduler,
  jobs: [
    {"*/1 * * * *", {TestApp.Workers.EnqueueContracts, :prepare_job, []}, state: :inactive}
  ]

Error:

** (Mix) Could not start application test_app: TestApp.Application.start(:normal, []) returned an error: shutdown: failed to start child: TestApp.Scheduler
    ** (EXIT) an exception was raised:
        ** (FunctionClauseError) no function clause matching in Quantum.Normalizer.normalize/2
            (quantum 3.5.0) lib/quantum/normalizer.ex:32: Quantum.Normalizer.normalize(%Quantum.Job{run_strategy: %Quantum.RunStrategy.Random{nodes: :cluster}, overlap: true, timezone: :utc, name: #Reference<0.3696946988.2404384770.187641>, schedule: nil, task: nil, state: :active}, {"*/1 * * * *", {TestApp.Workers.EnqueueNftContracts, :prepare_job, []}, [state: :inactive]})
            (elixir 1.15.7) lib/enum.ex:1693: Enum."-map/2-lists^map/1-1-"/2
            (quantum 3.5.0) lib/quantum.ex:309: anonymous fn/3 in Quantum.scheduler_config/3
            (elixir 1.15.7) lib/keyword.ex:1145: Keyword.update_guarded/4
            (elixir 1.15.7) lib/keyword.ex:1149: Keyword.update_guarded/4
            (quantum 3.5.0) lib/quantum.ex:306: Quantum.scheduler_config/3
            (crypto_hub 0.1.0) deps/quantum/lib/quantum.ex:357: CryptoHub.Scheduler.start_link/1
            (stdlib 5.2) supervisor.erl:420: :supervisor.do_start_child_i/3
            (stdlib 5.2) supervisor.erl:406: :supervisor.do_start_child/2
            (stdlib 5.2) supervisor.erl:390: anonymous fn/3 in :supervisor.start_children/2
            (stdlib 5.2) supervisor.erl:1258: :supervisor.children_map/4
            (stdlib 5.2) supervisor.erl:350: :supervisor.init_children/2
            (stdlib 5.2) gen_server.erl:980: :gen_server.init_it/2
            (stdlib 5.2) gen_server.erl:935: :gen_server.init_it/6
            (stdlib 5.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3
fly49 commented 6 months ago

@maennchen please consider https://github.com/quantum-elixir/quantum-core/pull/611