namun cron mengharuskan saia untuk meng-update crontab setiap kali saia ingin menambahkan task baru, karenanya saia mencoba mencari alternatif lain yg reliable dan mudah digunakan..
http://github.com/javan/whenever/
sebagai alternatif rufus-scheduler gem ini cukup mudah untuk digunakan, walaupun sedikit lebih "repot".
saia rasa dokumentasi di github sudah cukup jelas jadi saia hanya akan membahas implementasi yg saia gunakan.
yang menyusahkan dari gem ini, saia diharuskan meng-convert schedule.rb ke cron dengan menggunakan
whenever --update-crontab MyApp
setiap kali saia melakukan perubahan di schedule.rb
dokumentasi di github menunjukkan cara integrasi dengan capistrano, tetapi saia tdk mau direpotkan dengan menginstall gem tambahan, jadi yg saia lakukan hanya menambahkan bbrp baris di script untuk deploying pada staging dan production server:
.... svn up, rsync, etc ....
cd /home/rails/myapp && whenever --update-crontab MyApp --set environment=staging
cd /home/rails/myapp/script && chmod 755 runner
baris 1 untuk meng-update crontab. --set environment digunakan untuk merubah environment dari default production
baris 2 untuk memberi ijin execute pada script runner, karena saia menggunakan model method bukan rake untuk task2 nya
contoh schedule.rb yg saia gunakan:
every 30.minutes do
runner "QueuedEmail.deliver_all"
end
every 10.minutes do
runner "Message.destroy_all_expired"
end
every :day do
runner "ReferData.give_rewards!"
runner "SystemMailer.deliver_scheduler_check"
end