2017-08-09 4 views
2

Je veux exécuter un code à chaque minute et j'ai essayé une tentative en utilisant le code suivant:tâches Cron élixir quantique

#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 
] 

Ceci est l'une des réponses à cette question How to run some code every few hours in Phoenix framework?

Toutefois, lorsque J'exécute iex -S mix il ne montre aucun message, ni un message d'erreur.

Savez-vous quel serait le problème?

+0

Êtes-vous sur le quantum 2.0.0? On dirait qu'ils ont changé leur API de manière significative en v2. Voir https://hexdocs.pm/quantum/migrate-v2.html et https://hexdocs.pm/quantum/readme.html. Ils ont les instructions mises à jour là. – Dogbert

+0

Oui, j'utilise le quantum 2.0.0, j'ai aussi essayé ce que dit la documentation mais ça ne marche toujours pas. –

Répondre

2

La réponse que vous avez mentionnée doit être périmée. Selon le documentation vous devez créer votre propre planificateur:

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

lancer comme un travailleur dans lib/your_app.ex

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

Et configurer dans config/dev.exs en utilisant le format suivant:

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

Cela a fonctionné quand j'ai ajouté le travailleur à ** lib/your_app.ex ** –

+0

désolé, j'ai nommé mon application 'test', mais pour la réponse, j'ai changé tous les' Test' et 'test' à' YourApp' et 'your_app '. On dirait pas partout, fixe. –

+0

Great !, merci pour votre réponse –