Où dois-je mettre les processus d'arrière-plan dans les rails?
-
20-09-2019 - |
Question
Je construis un projet Rails qui a un emploi de type cron que je me débrouille avec Rufus Scheduler. J'ai deux questions sur la façon de mettre en place de façon appropriée dans Rails:
- Quel est le meilleur endroit pour mettre le code du travail?
- Où dois-je placer le code Rufus pour planifier le travail? Comment dois-je le coup d'envoi?
La solution
Pour contrôler le planificateur je créerais un config/initializers/task_scheduler.rb
:
task_scheduler = Rufus::Scheduler.start_new
task_scheduler.every("1m") do
Something.to_do! # Do something every minute!
end
pour le code Something.to_do
, ce genre de dépend de ce qu'il fait. Peut-être est un modèle de données et il devrait aller dans le répertoire app/models
, mais si elle est quelque chose que vous pourriez vouloir plus générique de la placer dans lib/
. Si vous liquidez avec un certain nombre de tâches planifiées, vous pouvez créer un répertoire app/scheduled_tasks
, mais peut-être trop pour un seul fichier.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow