Railsy jak uruchomić zadanie rake


97

Jak uruchomić ten plik rake w terminalu / konsoli?

mój statistik.rake w lib / jobs

desc "Importer statistikker"
namespace :reklamer do
  task :iqmedier => :environment do
    ...
  end
  task :euroads => :environment do
    ...
  end
  task :mikkelsen => :environment do
    ...
  end
  task :orville => :environment do
    ...
  end
end

Odpowiedzi:


133

Możesz uruchamiać zadania Rake ze swojej powłoki, uruchamiając:

rake task_name

Aby uruchomić z Rubiego (np. W konsoli Railsów lub w innym zadaniu Rake):

Rake::Task['task_name'].invoke

Aby uruchomić wiele zadań w tej samej przestrzeni nazw za pomocą jednego zadania, utwórz następujące nowe zadanie w swojej przestrzeni nazw:

task :runall => [:iqmedier, :euroads, :mikkelsen, :orville] do
  # This will run after all those tasks have run
end

1
Jak zgarnąć wszystkie zadania naraz, czy też muszę zmienić przestrzeń nazw na zadanie?
— Początkujący w Railsach

1
Jeśli chcesz uruchomić wszystkie zadania naraz make zadania: wszystko => [: A: B: C], a następnie uruchom natarcia reklamer: ALL
— Spike Gronim

1
To nie była część twojego pytania, ale musiałbyś wykonać nowe zadanie, które wywoła każde z nich, na które istnieje skrót. Zobacz moją zaktualizowaną odpowiedź.
— Andrew Marshall,

1
@Andrew Marshall, przy okazji, możesz użyć, task :runall => Rake::Task.tasksjeśli chcesz uruchomić wszystkie zadania. Ale ta linia musi być zadeklarowana po wszystkich zadaniach.
— Vasiliy Ermolovich

Gdzie powinno zadanie: runall => iść?
— Początkujący w Railsach

25
Rake::Task['reklamer:orville'].invoke

lub

Rake::Task['reklamer:orville'].invoke(args)

To podejście zadziała, ale „prawidłowy” sposób łączenia zadań raksów został udzielony przez @ andrew-marshall.
— Tom Harrison,

3
podaj referencje, jeśli masz zamiar powiedzieć coś takiego jak „właściwy” sposób… ”. moja odpowiedź była odpowiedzią na pierwotne pytanie.
— Luke W

3
W ramach testu teoretycznego próbowałem uruchomić, Rake::Task['db:seed'].invokeale nie działa, mówiąc: „Nie wiem, jak zbudować zadanie 'db: seed'”
— lulalala

22

Czy próbowałeś rake reklamer:iqmedier?

Moje niestandardowe zadania rake'u znajdują się w katalogu lib, a nie w lib / task. Nie jestem pewien, czy to ma znaczenie.


1
Chcę uruchamiać wszystkie zadania naraz
— Początkujący w Railsach

14

Czasami Twoje zadania rake nie są ładowane w konsoli, w takim przypadku możesz wypróbować następujące polecenia

require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke

Te cytaty są złe, ale nie mogę ich edytować, ponieważ jest to zbyt mała edycja!
— nroose

Chociaż nie jest to prawdziwa odpowiedź na zadane pytanie. To jest to, czego szukałem i rozwiązałem mój problem (YourApp :: Application.load_tasks). Dzięki!
— Dennis van de Hoef

4

Jeśli nie jesteś pewien, jak uruchomić zadanie rake, najpierw dowiedz się, jakie masz zadania, a także wyświetli listę poleceń do uruchamiania zadań.

Uruchom rake --tasksna terminalu.

Wyświetli listę zadań, takich jak następujące:

rake gobble:dev:prime             
rake gobble:dev:reset_number_of_kits                                    
rake gobble:dev:scrub_prod_data

Następnie możesz uruchomić zadanie za pomocą: rake gobble:dev:primezgodnie z listą.


1

W szynach 4.2 powyższe metody nie działały.

  1. Idź do terminala.
  2. Zmień katalog na lokalizację, w której znajduje się plik rake.
  3. uruchom rake nazwa_zadania.
  4. W powyższym przypadku uruchom rake iqmedier - uruchomi tylko zadanie iqmedir.
  5. run rake euroads - uruchomi tylko zadanie euroads.
  6. Aby uruchomić wszystkie zadania w tym pliku, przypisz następujące elementy w tym samym pliku i uruchom rake all

    task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
    end
    
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.