0

这可能不是最聪明的问题……对此感觉特别密集。我正在使用一个非常漂亮的宝石,Fist of Fury,通过 Sucker Punch 执行重复的后台任务:https ://github.com/facto/fist_of_fury 。正如 gem 的作者所说,重复规则是使用 ice cube gem https://github.com/seejohnrun/ice_cube构建的。

他举了一个经常性工作的例子:

class SayHiJob
  include SuckerPunch::Job
  include FistOfFury::Recurrent

  recurs { minutely }

  def perform
    Rails.logger.info 'Hi!'
  end
end

我通过上面链接的 Fist of Fury 和 Ice Cube 的文档阅读,只是想确认我的理解......

  • 愤怒的拳头需要一个冰块规则在recurs {}括号中,recurs本质上是schedule从冰块替换
  • 您可以使用 Ice Cube 中的预定义规则,例如minutely在示例中或daily(2)(每隔一天),或者您可以定义自己的规则
  • 如果你定义了自己的规则,你可以把它放在 recur 的正上方,因为 ice cube 的 gem 已经安装了 Fist of Fury,类似于(导致每个月 13 日发生一次活动):

    rule = Rule.monthly.day_of_month(13) 重复 { rule }

如果后者是正确的,我很想知道如何为一天中的特定时间编写规则。类似的东西rule = Rule.daily(2).time_of_day(3)意味着我希望活动每隔一天凌晨 3 点进行一次。

4

1 回答 1

1

您应该能够使用 IceCube 时间验证,例如:

hour_of_day(3).minute_of_hour(15).second_of_minute(0)

希望有帮助!

于 2014-08-05T02:48:42.320 回答