Utilizzare cron con Ruby
Mi sono imbattutto in questa libreria che ci permette di creare schedulazioni per cron usando Ruby: whenever!
Per installarla possiamo usare gem:
$ sudo gem install whenever
Adesso dobbiamo creare il file schedulatore, e possiamo farlo così:
$ cd proj/
$ wheneverize .
[add] creating `./config'
[add] writing `./config/schedule.rb'
[done] wheneverized!
Per vedere cosa c'è nello scheduler:
$ whenever
## [message] Above is your schedule file converted
to cron syntax; your crontab file was not updated.
## [message] Run `whenever --help' for more options
Il file creato è un file Ruby, e quindi lo schedalutore viene scritto in questo linguaggio.
Ad esempio:
every '* * * * *' do
command "echo 'Ogni minuto con sintassi raw'"
end
Per aggiungerlo al cron di sistema:
$ whenever --update-crontab
$ crontab -e
Col secondo comando controllate il crontab corrente.
Volendo possiamo anche usare le funzioni della libreria senza usare la sintassi raw; ad esempio (dal sito ufficiale):
every 3.hours do # 1.minute 1.day 1.week 1.month 1.year is also supported
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
Enjoy!
ruby cron crontab whenever wheneverize
Commentami!