开发者

Rails whenever gem: each month on the 20th

开发者 https://www.devze.com 2023-03-15 08:40 出处:网络
I searched all over the internet for this, and the documentation isn\'t really talking about monthly jobs in specific. So I was hoping that someone here could tell me how to do this.

I searched all over the internet for this, and the documentation isn't really talking about monthly jobs in specific. So I was hoping that someone here could tell me how to do this.

I've installed the whenever gem and all I need to know is开发者_如何学Go the right syntax for this:

every :month, :on => '20th', :at => '02:00' do
  runner "Mailer.send_friend_sheet"
end

Hope someone can point me in the right direction..

Thanks!


You can use raw cron syntax as well if you cant figure out how to use with ruby syntax.

What you want will look like:

every '0 2 20 * *' do
  command "echo 'you can use raw cron syntax too'"
end

Here is a quick cheatsheet for how to use cron syntax

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Shamelessly stolen from: http://adminschoice.com/crontab-quick-reference


If you want it more readable you can also just parse a date in text.

every 1.month, :at => 'January 20th 2:00am' do
  runner "Mailer.send_friend_sheet"
end

This will generate 0 2 20 * * as well.


Whenever doesn't support an :on option as far as I am aware, but you should be able to do

every '0 2 20 * *' do
  runner "Mailer.send_friend_sheet"
end

The '0 2 20 * *' is simply the relevant cron syntax - see http://www.manpagez.com/man/5/crontab/


Even better:

every 1.month, at: 'start of the month at 2am' do
  runner "Mailer.send_friend_sheet"
end
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号