Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何创建报表计划程序?_Ruby On Rails_Ruby_Scheduled Tasks - Fatal编程技术网

Ruby on rails 如何创建报表计划程序?

Ruby on rails 如何创建报表计划程序?,ruby-on-rails,ruby,scheduled-tasks,Ruby On Rails,Ruby,Scheduled Tasks,用户可以选择(并持续编辑)希望接收特定报告的日期: 3 report options 7 possible days (Monday - Sunday) 如果用户可以在一周的任何一天或月末收到3份报告中的任何一份,那么在数据库中存储数据的最佳方式是什么 User 1's report schedule = report 1 monday and tuesday, report 2 monday, report 3 at the end of every month 我的第一个想法是使用一个计

用户可以选择(并持续编辑)希望接收特定报告的日期:

3 report options
7 possible days (Monday - Sunday)
如果用户可以在一周的任何一天或月末收到3份报告中的任何一份,那么在数据库中存储数据的最佳方式是什么

User 1's report schedule = report 1 monday and tuesday, report 2 monday, report 3 at the end of every month
我的第一个想法是使用一个计划模型,并具有布尔值,但很快就失去了控制:

Schedule model
attr_accessible  :report_one_monday, :report_one_tuesday, :report_one_wednesday, :report_one_thursday, :report_one_friday, :report_one_saturday, :report_one_sunday
:report_two_monday, :report_two_tuesday, :report_two_wednesday, :report_two_thursday, :report_two_friday, :report_two_saturday, :report_two_sunday
:report_three_monday, :report_three_tuesday, :report_three_wednesday, :report_three_thursday, :report_three_friday, :report_three_saturday, :report_three_sunday
:report_one_end_of_month etc
我想使用heroku调度程序每天运行一个rake任务,以查看它必须发送哪些报告。月末任务的外观如下所示:

task :send_reports => :environment do
 if Date.today == Date.today.end_of_month
  Business.where(report_one_end_of_month: true).each do |business|
   MyMailer.send_month_end_report(business).deliver
  end
 end
end
看看哪个是refus调度程序的超集

我们正在使用此工具在后台生成报告,并将其通过电子邮件发送给用户,这肯定会解决您的问题

Resque是基于redis的工具,用于运行后台作业,Resque scheduler当然是scheduler,它可以接受cron schedule来在将来调度Resque作业