我希望我的一个课程只在周二,周三和周四开课。我有以下内容:
class ReminderJob
def perform
begin
# Days to send: Tuesdays, Wednesdays, Thursdays
next Date.today.wday.instance_of?('2,3,4')
如果不是周二,周三,那么这个想法就存在了。关于如何用红宝石解决这个问题的建议?感谢
答案 0 :(得分:2)
如果您只想让某个任务仅在特定日期/时间运行,您可能需要安排cron job。
如果你真的希望一个方法什么都不做,除非它是一周中的某一天,你可以这样做:
return unless [ :tuesday?, :wednesday?, :thursday? ].any? { |day| Date.today.send(day) }
答案 1 :(得分:1)
不要将调度混合到类本身中。让班级严格遵守执行任务的逻辑。
使用cron进行调度。使用nevergem创建cron作业。您可以指定它只应在一周中的某些天,一天中的某些时间等执行。
答案 2 :(得分:0)
虽然你的问题不明确,但我认为你确实有这个疑问的答案:
def perform
return if [2,3,4].include? Date.today.wday
puts "Your job!!!"
end