天天看點

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