AccueilActualitésDéveloppementWhenever, les tâches cron simplifiées pour Rails Whenever, les tâches cron simplifiées pour Rails Publié le 05/01/2012 Développement Nous vous présentons aujourd’hui Whenever, une gem qui permet de gérer ses crons par projets, et en Ruby. Introduction Un projet rails à généralement besoin de tâches qui se répètent dans un intervalle de temps. Faire des sauvegardes, mettre à jour des caches, lire des rss, … Dans ce cas, on utilise généralement un cron, qui permet d’executer des commandes à une fréquence donnée, comme des tâches rake, par exemple. Le seul inconvénient est que quand on déploie son projet sur sa plateforme de production, il n’est pas simple de déployer ses tâches cron… sans whenever. Installation Whenever est une gem qui permet de créer ses tâches cron directement dans son projet rails, avec une syntaxe ruby très simple. Vous trouverez son dépot github ici. Pour l’installation, rien de compliqué, gem install whenever. Ensuite, il n’y a plus qu’à taper « wheneverize path/to/my/project/ », ce qui crée un « config/schedule.rb« Configuration La configuration de whenever se fait à partir du fichier schedule.rb. exemple de schedule.rb every 3.hours do runner "MyModel.some_process" rake "my:rake:task" command "/usr/bin/my_great_command" end every 1.day, :at => '4:30 am' do runner "MyModel.task_to_run_at_four_thirty_in_the_morning" end every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot runner "SomeModel.ladeeda" end every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday runner "Task.do_something_great" end every '0 0 27-31 * *' do command "echo 'you can use raw cron syntax too'" end Au déploiement, il suffit d’une ligne pour ensuite mettre à jour ses crons: whenever update-crontab Les lignes relatives au projet sont à ce moment là ajoutées en bas, avec un commentaire précisant leur projet d’appartenance. By Benjamin Sanchez Laisser un commentaire Annuler la réponseVotre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *Comment Nom * E-mail* Site web Enregistrer mon nom, mon e-mail et mon site dans le navigateur pour mon prochain commentaire.