在 Rails 中存储周期
Storing periodicity in Rails
我让用户可以选择按他们选择的周期接收电子邮件,例如:
Every day at 5am
或
Every Friday at 11pm
甚至
Every second Monday of the month at 12am
我存储此类数据以将其提供给 Whenever
gem 的最佳选择是什么?
更新
我通过@mudasobwa 的建议结合 cron_parser
gem 解决了这个问题。工艺流程为:
- 从前端的 select 框中获取用户输入
- 在后端解析它并解码成cron格式(例如
7
意味着我需要每周发送电子邮件,所以代码可以是“1 1 * * 1
”),将值存储为 periodicity
.
- 使用
cron_parser
gem 生成 next_run
日期格式,用于在任何时候告诉 gem 它需要执行哪些作业已过时。
whenever
gem accepts 原始的 cron 语法。这就是为什么最简单的方法(涉及尽可能少的转换)是以 原始 cron 格式.
存储值的原因
就是说,您可能应该有一个解析器 from/to 允许用户输入 to/from 原始 cron 格式,仅此而已。
我让用户可以选择按他们选择的周期接收电子邮件,例如:
Every day at 5am
或
Every Friday at 11pm
甚至
Every second Monday of the month at 12am
我存储此类数据以将其提供给 Whenever
gem 的最佳选择是什么?
更新
我通过@mudasobwa 的建议结合 cron_parser
gem 解决了这个问题。工艺流程为:
- 从前端的 select 框中获取用户输入
- 在后端解析它并解码成cron格式(例如
7
意味着我需要每周发送电子邮件,所以代码可以是“1 1 * * 1
”),将值存储为periodicity
. - 使用
cron_parser
gem 生成next_run
日期格式,用于在任何时候告诉 gem 它需要执行哪些作业已过时。
whenever
gem accepts 原始的 cron 语法。这就是为什么最简单的方法(涉及尽可能少的转换)是以 原始 cron 格式.
就是说,您可能应该有一个解析器 from/to 允许用户输入 to/from 原始 cron 格式,仅此而已。