Ruby 具有持续时间的周期性计划的Gem

Ruby 具有持续时间的周期性计划的Gem,ruby,gem,recurring,recurring-events,Ruby,Gem,Recurring,Recurring Events,我正在建立一个资产跟踪器。在我的应用程序中,我有一些“资产”,用户在一段时间内(比如周三上午8点到周五上午8点)签出这些资产。 现在我想让它也重复出现。因此,在接下来的5周内,每周从8号星期三到8号星期五的定期预订应该是可行的。我稍后会询问我想检查预订是否与其他此类定期预订或非定期预订发生冲突 我发现ice_cube对于经常发生的事件来说非常棒,但是没有持续时间的概念。处理持续时间最干净的方法是什么?当然,我说的不是最终的结束持续时间,而是周期性的持续时间。您可以使用cron作业来处理周期性任务

我正在建立一个资产跟踪器。在我的应用程序中,我有一些“资产”,用户在一段时间内(比如周三上午8点到周五上午8点)签出这些资产。 现在我想让它也重复出现。因此,在接下来的5周内,每周从8号星期三到8号星期五的定期预订应该是可行的。我稍后会询问我想检查预订是否与其他此类定期预订或非定期预订发生冲突


我发现ice_cube对于经常发生的事件来说非常棒,但是没有持续时间的概念。处理持续时间最干净的方法是什么?当然,我说的不是最终的结束持续时间,而是周期性的持续时间。

您可以使用cron作业来处理周期性任务。看看宝石。还可以看看这个,它使用where

无论何时:

every 3.hours do
  runner "MyModel.some_process"
  rake "my:rake:task"
  command "/usr/bin/my_great_command"
end

every 1.day, :at => '4:30 am' do
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end

every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
  runner "SomeModel.ladeeda"
end

“ice_cube”允许您在initialize方法中指定一个:duration参数(以秒为单位),以使计划具有循环持续时间


我之前错过了。这应该可以解决问题

这个场景与使用cron安排事情的关系不大。这更像是一个日期-时间-日历反复冲突的场景。