Loading ...

Utilizzare cron con Ruby

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!