Ruby on rails 如何在日期选择器上创建过去的自定义cron作业?

Ruby on rails 如何在日期选择器上创建过去的自定义cron作业?,ruby-on-rails,ruby,cron,Ruby On Rails,Ruby,Cron,我在web应用程序上具有以下功能: 对于上面的图片,我将时间表模型上指定的时间保存下来,以便执行一些工作。目前,这非常适用于“简单”选择,这意味着如果用户仅选择小时、每周、每天或每月,那么我有一组cron作业,将开始小时、每周、每天或每月。因此,为了清楚起见,我已经在crontab中放置了4个cron作业,它们将在指定的时间运行并选择相应的调度模型 我面临的问题是定制特性。如何有效地创建一个后台任务来运行用户的自定义输入,这让我很困惑。下面是一个示例场景。假设我有3个用户,每个用户都选择一个自

我在web应用程序上具有以下功能:

对于上面的图片,我将
时间表
模型上指定的时间保存下来,以便执行一些工作。目前,这非常适用于“简单”选择,这意味着如果用户仅选择
小时、每周、每天或每月
,那么我有一组cron作业,将开始
小时、每周、每天或每月
。因此,为了清楚起见,我已经在crontab中放置了4个cron作业,它们将在指定的时间运行并选择相应的调度模型

我面临的问题是定制特性。如何有效地创建一个后台任务来运行用户的自定义输入,这让我很困惑。下面是一个示例场景。假设我有3个用户,每个用户都选择一个自定义时间来执行一些工作

用户1选择仅在1月、2月和3月完成的自定义任务。 用户2选择要在周一下午1点、3点、6点和9点完成的自定义任务。 用户3选择仅在每个月的星期五到星期六进行扫描

而且定制还在继续


实施这种行为的有效可行方法是什么?目前,我很困惑,甚至还没有找到一种方法来根据需求实现这一点。从我所读到的内容来看,基于堆栈溢出问题,我相信延迟的作业将对我有所帮助,但由于存在如此多的变化,这怎么可能呢。如能提供一些帮助和指导,将不胜感激。谢谢。

我可能会使用一种机制,在保存配置时将作业排队一次,以便下次执行。然后,在运行之后,计算下一次出现的次数,依此类推。在更改配置时,不要忘记首先删除已计划的运行。对于某些ActiveJob适配器,这可能会很棘手,这就是为什么,如果您还没有决定使用某个特定适配器,我建议您使用它。但你也能做到

为了便于计算下一个事件,您可以使用gem