Ruby on rails 从现在到每月第二个星期二之间的Ruby时间(天/小时/分钟)
我使用的是ruby 2.0.0和rails 4.0.0 我有一个web服务调用,它将在每个月1日运行 它的工作是安排电子邮件在每月的第二个星期二发出 “Scheduler”web服务调用具有如下参数:Ruby on rails 从现在到每月第二个星期二之间的Ruby时间(天/小时/分钟),ruby-on-rails,ruby,Ruby On Rails,Ruby,我使用的是ruby 2.0.0和rails 4.0.0 我有一个web服务调用,它将在每个月1日运行 它的工作是安排电子邮件在每月的第二个星期二发出 “Scheduler”web服务调用具有如下参数: ?1d&1h&1m计划表 这将安排电子邮件在api调用执行后1天、1小时和1分钟发出 在调用API之前,我需要计算“time.now”和每月第二个星期二之间的时间,以天、小时和分钟为单位 我如何写出代码并以上面“1d&1h&1m”的格式获取它?def schedule 现在=时间 Second周二
?1d&1h&1m计划表
这将安排电子邮件在api调用执行后1天、1小时和1分钟发出
在调用API之前,我需要计算“time.now
”和每月第二个星期二之间的时间,以天、小时和分钟为单位
我如何写出代码并以上面“1d&1h&1m
”的格式获取它?def schedule
现在=时间
Second周二=8+(2次本地(现在.年,现在.月,1.wday)%7
s=时间.本地(现在.年,现在.月,第二个星期二)-现在
dhm=[24*36003600,60]。注入([]){a,b | x,s=s.divmod(b);aI不理解参数值。1d&1h
是否等同于25h
?如果是周日晚上10点,并且邮件将在周二凌晨3点发出,是1d&5h
还是2d&3h
?1d&1h
等同于25h
。我正在构建,只是为了避免开发人员与调度程序出现问题尼莫尔。
def scheduleSecondTuesday
now = Time.now
secondTuesday = 8 + (2-Time.local(now.year,now.month,1).wday) % 7
s = Time.local(now.year,now.month,secondTuesday) - now
dhm = [24*3600,3600,60].inject([]) { |a,b| x,s = s.divmod(b); a<<x }
'?schedule_for_%dd&%dh&%dm' % dhm
end
scheduleSecondTuesday
# => "?schedule_for_5d&9h&48m"