2017-08-09 100 views
2

我想執行代碼的每一分鐘,我用下面的代碼試圖嘗試:後臺任務量子靈藥

#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混合它不顯示任何消息,既不是一個錯誤消息。

你知道問題是什麼嗎?

+0

你是否在量子2.0.0?看起來他們在v2中顯着地改變了他們的API。請參閱https://hexdocs.pm/quantum/migrate-v2.html和https://hexdocs.pm/quantum/readme.html。他們有更新的說明。 – Dogbert

+0

是的,我使用的是量子2.0.0,我也試過文檔說的但它仍然不起作用。 –

回答

2

您提到的答案必須是過時的。按照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, []) 
] 

而且在配置配置使用/ dev.exs格式如下:

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

它工作時,我將工人添加到** lib/your_app.ex ** –

+0

對不起,我給我的應用程序命名爲'test',但爲了答案,我將每個'Test'和'test'都更改爲'YourApp'和'your_app '。似乎不是到處都是,修復。 –

+0

太好了!,謝謝你的回答 –