天天看点

Ruby自定义rake任务

注: 自定义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