Task & Rexcel
最终生成的报表需要excel格式,我用了Rexcel这个插件,先写下一个task(/lib/task/task.rake)
namespace :reports do
desc "my report"
task :my_report => :environment do
arr = ActiveRecord::Base.connection.execute("#{your sql}").to_a
workbook = Rexcel::Workbook.new
worksheet = workbook.add_worksheet("reports")
worksheet.add_line(["col1", "col2", "col3"])
worksheet.add_lines(arr)
Rails.logger.info("===================begin to write excel")
File.open("#{RAILS_ROOT}/public/uploads/reports/#{month}月报表.xls", "w") do |f|
f.write(workbook.build)
end
end
end
Crontab & whenever
cron是unix的一个系统工具,用来在后台执行一些定时任务,crontab就是定义这些定时任务的文件
crontab commands
-
crontab -e
Edit your crontab file, or create one if it doesn’t already exist.
-
crontab -l
Display your crontab file
-
crontab -r
Remove your crontab file
whenever
whenever是一个用来生成可读性更好的crontab的gem
在config/schedule.rb
中写完任务
# 每个月1号凌晨4点执行任务
every '0 4 1 * *' do
rake "reports:my_report"
end
在控制台直接执行whenver,得到原生的crontab line,放到部署应用的机器上
关于rake task传参
如果想在控制台手动执行task,也许需要传一些参数,写法是这样
desc "模版应用次数统计报表 -- 手动执行,输入月份"
task :my_task_by_params, [:arg1, :arg2] => :environment do |t, args|
puts args.arg1
puts args.arg2
# your code ...
end
控制台执行RAILS_ENV=production rake my_task_by_params[1, 2]
如果用的是zsh的话,这个rake命令可能会出问题,记得用noglob,出处
分享到:
相关推荐
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
bower-rails, 在 Rails 上,为 Bower 设置类似 DSL + rake任务 rails Bower 对 Rails 项目的支持。 依赖文件是 Rails root 目录中的bower.json,如果使用 DSL,则为 Bowerfile 。 查看最新变更和发布的变更日志文件...
Administrate - 一个框架用于在Rails中创建灵活的、强大的管理仪表板
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
收集了常用RAILS学习的网址 收集了常用RAILS学习的网址
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
minitest-rails, Rails的Minitest集成 minitestRails 5的Minitest集成 安装gem install minitest-rails这将安装以下宝石:minitest配置创建一个新的Rail
一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码
《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...
本资源是参照rails敏捷开发第四版书中的例子,rails的版本是rails3.2.6
本文介绍如何开始使用Ruby on Rails,读完本文后,您将...如何安装Rails,创建Rails应用,如何连接数据库; Rails应用的基本文件结构; MVC(模型,视图,控制器)和REST架构的基本原理; 如何快速生成Rails应用骨架;
adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...
Bootstrap 3 和 Rails 4(样例用的是Ruby 2.1.1,Rails 4.1.4) Table of Contents Preface 1 Chapter 1: Introducing Web Application Development in Rails 7 Why Bootstrap with Rails? 8 Setting up a Todo ...
中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍
rails文档 rails api 英文
rails, Ruby on Rails 欢迎使用 RailsRails 是一个web应用程序框架,它包括根据 Model-View-Controller ( MVC ) Pattern 创建数据库备份的web应用程序所需的所有内容。理解 MVC Pattern 是理解 Rai
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文