Rails whenever gem: each month on the 20th

后端 未结 4 1904
隐瞒了意图╮
隐瞒了意图╮ 2021-02-02 14:20

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

相关标签:
4条回答
  • 2021-02-02 14:42

    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.

    0 讨论(0)
  • 2021-02-02 14:42

    Even better:

    every 1.month, at: 'start of the month at 2am' do
      runner "Mailer.send_friend_sheet"
    end
    
    0 讨论(0)
  • 2021-02-02 14:44

    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

    0 讨论(0)
  • 2021-02-02 14:55

    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/

    0 讨论(0)
提交回复
热议问题