注: 自定义rake任务文件写在/lib/tasks/**.rake中
示例代码:
namespace :connectivity do
desc 'login'
task(login: :environment) do
Connectivity.login
p "login time: #{Time.now}"
end
end
代码解释:
1、:connectivity是任务的命名空间
2、desc ‘login’任务的文字解释
3、:environment将会告知rake在执行login任务之前加载应用程序的完整环境。如果需要使用应用程序
中的代码就需要加上,当然要使用什么环境需要在调用时加上RAILS_ENV=**。
执行rake任务:
rake RAILS_ENV=production connectivity:login #指定rake执行的环境为production
扩展:
task :a do
puts "a"
end
task :b do
puts "b"
end
task :c do
puts "c"
end
task :ready => [:a,:b,:c] do
puts "ready"
end
#当执行ready任务时,将会先按顺序执行a、b、c任务,完了之后执行ready任务
#执行rake ready,输出结果为:
#a
#b
#c
#ready