每当gem出现Rails:每个月20日

我在互联网上搜索了这个,文档并没有真正谈论具体的月度工作。 所以我希望这里的某个人可以告诉我该怎么做。

我已经安装了随时随地的gem,我需要知道的是正确的语法:

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

希望有人能指出我正确的方向..

谢谢!

据我所知,每当不支持:on选项时,你应该能够做到

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

‘0 2 20 * *’只是相关的cron语法 – 请参阅http://www.manpagez.com/man/5/crontab/

如果你无法弄清楚如何使用ruby语法,你也可以使用原始cron语法。

你想要的是:

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

这是一个如何使用cron语法的快速备忘单

 * * * * * 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) 

无耻地偷走了: http : //adminschoice.com/crontab-quick-reference

如果您希望它更具可读性,您也可以只解析文本中的日期。

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

这也将产生0 2 20 * *

更好的是:

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