【问题标题】:Cron tasks quantum elixirCron 任务量子灵药
【发布时间】:2018-01-16 20:06:04
【问题描述】:

我想每分钟执行一次代码,我尝试使用以下代码:

#your_app/mix.exs
defp deps do
    [{:quantum, ">= 1.9.1"},    
     #rest code
  end



#your_app/mix.exs
def application do
    [mod: {AppName, []},
     applications: [:quantum,
     #rest code         
   ]]
  end

#your_app/config/dev.exs
config :quantum, :your_app, cron: [
    # Every minute
    "* * * * *": fn -> IO.puts("Hello QUANTUM!") end
]

这是这个问题的答案之一How to run some code every few hours in Phoenix framework?

但是,当我执行 iex -S mix 时,它不显示任何消息,也不显示错误消息。

你知道问题出在哪里吗?

【问题讨论】:

标签: elixir phoenix-framework cron-task


【解决方案1】:

你提到的答案一定是过时的。根据documentation你需要创建自己的调度器:

defmodule YourApp.Scheduler do
  use Quantum.Scheduler, otp_app: :your_app
end

lib/your_app.ex

中作为工作人员启动它
children = [
  supervisor(YourApp.Repo, []),
  supervisor(YourApp.Endpoint, []),
  ...
  worker(YourApp.Scheduler, [])
]

并使用以下格式在 config/dev.exs 中进行配置:

config :test, YourApp.Scheduler, jobs: [
  # Every minute
  {"* * * * *", fn -> IO.puts("Hello QUANTUM!") end}
]

【讨论】:

  • 当我将工人添加到 lib/your_app.ex 时它起作用了
  • 抱歉,我将我的应用程序命名为 test,但对于答案,我将每个 Testtest 更改为 YourAppyour_app。好像不是到处都是,固定的。
猜你喜欢
  • 2010-10-21
  • 1970-01-01
  • 2016-10-12
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多