这可能不是最聪明的问题……对此感觉特别密集。我正在使用一个非常漂亮的宝石,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 点进行一次。