Ruby on rails 使后台作业生成的文件可供下载
我的控制器中有一个操作,根据选择的日期范围(开始和结束日期)生成站点使用情况报告,条件是开始和结束日期必须在当前季度内 我想实现一个Ruby on rails 使后台作业生成的文件可供下载,ruby-on-rails,ruby,ruby-on-rails-3,whenever,Ruby On Rails,Ruby,Ruby On Rails 3,Whenever,我的控制器中有一个操作,根据选择的日期范围(开始和结束日期)生成站点使用情况报告,条件是开始和结束日期必须在当前季度内 我想实现一个后台作业,该作业将在每个季度末生成此报告,并将其作为查看页面上的链接下载 每个季度为3个月,因此,例如,在3月31日11:59 PM,我希望它生成从1月1日到3月31日的站点使用情况报告,并可在查看页面中下载 如果可能的话,我更喜欢在任何时候使用,,因为我已经在使用它以确定的时间间隔重新索引模型。欢迎所有可能的建议 请帮我做这件事 您可以添加类ReportGener
后台作业
,该作业将在每个季度末生成此报告,并将其作为查看页面上的链接下载
每个季度为3个月,因此,例如,在3月31日11:59 PM
,我希望它生成从1月1日到3月31日的站点使用情况报告,并可在查看页面中下载
如果可能的话,我更喜欢在任何时候使用,
,因为我已经在使用它以确定的时间间隔重新索引模型。欢迎所有可能的建议
请帮我做这件事 您可以添加类ReportGenerator并在rails runner中使用它。此类将计算日期范围,生成报告并保存在应用程序的公共目录下。您必须注意,公共目录中的每个文件都是任何人都可以访问的。如果您不想获得访问此文件的某些授权,您可以将其放入其他目录中,例如-unpublic,并使用Apache的X-Sendfile http头通过您的应用程序(auth-purpose)为其提供服务
ReportGenerator.new(:quater => 4).generate
要识别您拥有的四分之一:
quaters => {
1 => "definition of 1st quater (date ranges)",
2 => "definition of 2nd quater (date ranges)",
3 => "definition of 3rd quater (date ranges)",
4 => "definition of 4th quater (date ranges)".
}
quater = Date.today.month / 3
我建议使用Gems(2.1适用于rails3.0+),或者创建后台作业,将它们放在多个队列中,稍后再处理它们。两者都有很好的铁路司机。谢谢你的帮助。。。我没有报表模型,我有控制器和视图。在控制器中,我定义了一个方法tht接受两个日期,并生成一个xls报告,以便在提交时在窗口中下载。我怎样才能像你提到的那样把它作为背景呢。。你能解释一下吗?我没有提到任何报告模型。只是一个Ruby类,没有ActiveRecord,它与您的控制器操作相同,但有一点不同。你没有明确地传递日期范围,只传递了四分之一个数字。然后添加类似于每隔3.6个月{runner“ReportGenerator.new(:quater=>Date.today.month/3).generate“}