CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Harmonogram wykonywania poleceń TradeFederation na wszystkich dostępnych urządzeniach.
Spróbuje nadać priorytety poleceniom do wykonania na podstawie łącznej liczby ich uruchomień. Przykładowo rzadko używane lub szybko wykonywane polecenia będą miały wyższy priorytet niż polecenia wymagające długiego czasu wykonania.
Działa w tle do momentu wyłączenia.
Podsumowanie
Zagnieżdżone klasy | |
---|---|
enum |
CommandScheduler.HostState
Enumy różnych stanów hosta |
Konstruktory publiczne | |
---|---|
CommandScheduler()
Tworzy |
Metody publiczne | |
---|---|
boolean
|
addCommand(String[] args)
Dodaje polecenie do harmonogramu. |
void
|
addCommandFile(String cmdFilePath,
Dodaje do harmonogramu wszystkie polecenia z podanego pliku. |
void
|
await()
Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazania od starego TF (jeśli to konieczne). |
static
TradefedDelegator
|
checkDelegation(String[] args)
Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie. |
void
|
completeHandover()
Informuje harmonogram sterowania, że rozpoczęta sekwencja przekazania została w pełni zakończona i że należy ponownie zainicjować zdalnego menedżera na domyślnym porcie. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby można było je odpowiednio uwolnić. |
ISandbox
|
createSandbox()
Utwórz |
void
|
displayCommandQueue(PrintWriter printWriter)
Wyświetla szczegółowe informacje debugowania o stanie kolejki wykonania poleceń. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Wyświetl listę bieżących poleceń. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Wyświetla listę bieżących wywołań. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przydziela urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń za pomocą już istniejącego |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przypisuje urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń. |
CommandFileWatcher
|
getCommandFileWatcher()
Pobierz odpowiedni |
int
|
getExecutingCommandCount()
Zwraca liczbę poleceń w stanie wykonywania. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Zwraca informacje o wywołaniu, podając jego identyfikator. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Zwraca kod błędu ostatniego wywołania. |
Throwable
|
getLastInvocationThrowable()
Zwraca |
int
|
getReadyCommandCount()
Zwraca liczbę poleceń w stanie gotowości w kole. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Informuje planistę poleceń, że początkowa wymiana danych urządzeń i poleceń została zakończona i można rozpocząć planowanie operacji. |
boolean
|
handoverShutdown(int handoverPort)
Inicjowanie |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Usuń wszystkie polecenia z harmonogramu |
void
|
run()
Główny blok kodu tego wątku. |
void
|
setClearcutClient(ClearcutClient client)
Konfigurowanie klienta do raportowania danych z harness |
boolean
|
shouldShutdownOnCmdfileError()
Zwraca wartość Prawda, jeśli musimy wyłączyć harmonogramistę z powodu błędów poleceń. |
void
|
shutdown()
Próba płynnego wyłączenia algorytmu planowania poleceń. |
void
|
shutdownHard(boolean killAdb)
Spróbuj wymusić zamknięcie harmonogramu poleceń. |
void
|
shutdownHard()
Spróbuj wymusić zamknięcie harmonogramu poleceń. |
void
|
shutdownOnEmpty()
Podobnie jak w przypadku polecenia |
void
|
start()
Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie |
boolean
|
stopInvocation(ITestInvocation invocation)
Zatrzymanie bieżącego wywołania. |
boolean
|
stopInvocation(int invocationId, String cause)
Zatrzymaj bieżące wywołanie, podając jego identyfikator. |
Chronione metody | |
---|---|
void
|
cleanUp()
Zamyka dzienniki i wykonuje inne niezbędne czynności porządkujące przed zakończeniem. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Metoda fabryczna służąca do uzyskiwania odwołania do obiektu |
IDeviceManager
|
getDeviceManager()
Metoda fabryczna służąca do uzyskiwania odwołania do obiektu |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Pobiera wartość |
void
|
initLogging()
Inicjowanie dziennika ddmlib. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Zaczekaj na zakończenie wszystkich wątków wywołania. |
Konstruktory publiczne
CommandScheduler
public CommandScheduler ()
Tworzy CommandScheduler
.
Uwaga: przed użyciem należy wywołać metodę start.
Metody publiczne
addCommand
public boolean addCommand (String[] args)
Dodaje polecenie do harmonogramu.
Polecenie to zasadniczo instancja konfiguracji do uruchomienia i powiązanych z nią argumentów.
Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wyświetlony na wyjściu standardowym. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.
Parametry | |
---|---|
args |
String : argumenty konfiguracji. |
Zwroty | |
---|---|
boolean |
true , jeśli polecenie zostało dodane, |
Rzuty | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje do harmonogramu wszystkie polecenia z podanego pliku.
Parametry | |
---|---|
cmdFilePath |
String : ścieżka do pliku poleceń w systemie plików |
extraArgs |
: tablica ERROR(/List) argumentów String do dołączenia do każdego polecenia przeanalizowanego z pliku. Może być puste, ale nie powinno być puste. |
Rzuty | |
---|---|
ConfigurationException |
await
public void await ()
Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazania od starego TF (jeśli to konieczne).
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie.
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
TradefedDelegator |
Rzuty | |
---|---|
ConfigurationException |
completeHandover
public void completeHandover ()
Informuje harmonogram sterowania, że rozpoczęta sekwencja przekazania została w pełni zakończona i że należy ponownie zainicjować zdalnego menedżera na domyślnym porcie.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby można było je odpowiednio uwolnić.
Parametry | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Zwroty | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Utwórz ISandbox
, którego wywołanie będzie używane do wykonania.
Zwroty | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Wyświetla szczegółowe informacje debugowania o stanie kolejki wykonania poleceń.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Wyświetl listę bieżących poleceń.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) do wyprowadzenia. |
regex |
String : wyrażenie regularne, do którego muszą pasować polecenia, aby mogły zostać wydrukowane. Jeśli jest to wartość null, zostaną wydrukowane wszystkie polecenia.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) do wyprowadzenia.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami Option
określonymi dla wszystkich bieżących poleceń.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , do którego ma być wyprowadzany stan. |
regex |
String : wyrażenie regularne, z którym powinny być zgodne polecenia, aby można było zdumpować plik XML. Jeśli jest to wartość null, zostaną wypisane wszystkie polecenia.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , aby poinformować |
device |
ITestDevice : ITestDevice do użycia |
args |
String : argumenty polecenia |
Rzuty | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przydziela urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń za pomocą już istniejącego IInvocationContext
.
Parametry | |
---|---|
context |
IInvocationContext : istniejący IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , aby poinformować |
args |
String : argumenty polecenia |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przypisuje urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , aby poinformować |
args |
String : argumenty polecenia |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Pobierz odpowiedni CommandFileWatcher
dla tego harmonogramu
Zwroty | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Zwraca liczbę poleceń w stanie wykonywania.
Zwroty | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Zwraca informacje o wywołaniu, podając jego identyfikator.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
Zwroty | |
---|---|
String |
String zawierający informacje o wywoływaniu.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Zwraca kod błędu ostatniego wywołania. Zwraca wartość 0 (brak błędu), jeśli żadne wywołanie nie zostało jeszcze wykonane.
Zwroty | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Zwraca wartość Throwable
z ostatniego wywołania.
Zwraca wartość null, jeśli nie ma dostępnych obiektów rzucalnych.
Zwroty | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Zwraca liczbę poleceń w stanie gotowości w kole.
Zwroty | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Zwroty | |
---|---|
long |
handoverInitiationComplete
public void handoverInitiationComplete ()
Informuje planistę poleceń, że początkowa wymiana danych urządzeń i poleceń została zakończona i można rozpocząć planowanie operacji.
handoverShutdown
public boolean handoverShutdown (int handoverPort)
Inicjowanie shutdown()
i przekazywanie do innego procesu tradefed w tym samym hostie.
W miarę ich pojawiania się harmonogram poinformuje proces zdalnego przetwarzania danych, który nasłuchuje na tym porcie, o dostępnych urządzeniach.
Parametry | |
---|---|
handoverPort |
int |
Zwroty | |
---|---|
boolean |
true , jeśli przekazanie zostało zainicjowane i udało się, false w przeciwnym razie
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametry | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Usuń wszystkie polecenia z harmonogramu
home run
public void run ()
Główny blok kodu tego wątku.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Konfigurowanie klienta do raportowania danych z harness
Parametry | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Zwraca wartość Prawda, jeśli musimy wyłączyć harmonogramistę z powodu błędów poleceń.
Zwroty | |
---|---|
boolean |
wyłączenie
public void shutdown ()
Próba płynnego wyłączenia algorytmu planowania poleceń.
Czyści polecenia oczekujące na przetestowanie i prosi o zakończenie wszystkich wywołań w trakcie.
Po wywołaniu metody shutdown pętla główna harmonogramu zaczeka, aż wszystkie trwające wywołania zostaną zakończone, a dopiero potem zakończy działanie.
shutdownHard
public void shutdownHard (boolean killAdb)
Spróbuj wymusić zamknięcie harmonogramu poleceń.
Podobnie jak w przypadku shutdown()
, ale w tym przypadku opcjonalnie kończy też połączenie adb, aby w miarę możliwości przyspieszyć proces wywoływania.
Parametry | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Spróbuj wymusić zamknięcie harmonogramu poleceń. To samo co shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Podobnie jak w przypadku polecenia shutdown()
, ale z tym, że przed zakończeniem zaczeka na wykonanie wszystkich poleceń.
Pamiętaj, że jeśli jakiekolwiek polecenia są w pętli, harmonogram nigdy się nie zakończy.
rozpocznij
public void start ()
Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager
itp.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Zatrzymanie bieżącego wywołania.
Parametry | |
---|---|
invocation |
ITestInvocation |
Zwroty | |
---|---|
boolean |
wartość true, jeśli wywołanie zostało zatrzymane, w przeciwnym razie wartość false |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Zatrzymaj bieżące wywołanie, podając jego identyfikator.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
cause |
String : przyczyna zatrzymania wywołania. |
Zwroty | |
---|---|
boolean |
wartość true, jeśli wywołanie zostało zatrzymane, w przeciwnym razie wartość false |
Chronione metody
cleanUp
protected void cleanUp ()
Zamyka dzienniki i wykonuje inne niezbędne czynności porządkujące przed zakończeniem.
Wyeksponowane, aby można było je zasymulować w testach jednostkowych.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
IConfiguration |
Rzuty | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Zwroty | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IConfigurationFactory
Zwroty | |
---|---|
IConfigurationFactory |
IConfigurationFactory do użycia
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IDeviceManager
Zwroty | |
---|---|
IDeviceManager |
IDeviceManager do użycia
|
getHostOptions
protected IHostOptions getHostOptions ()
Zwroty | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Pobiera wartość IKeyStoreClient
za pomocą parametru IKeyStoreFactory
zadeklarowanego w IGlobalConfiguration
lub null, jeśli nie ma zdefiniowanego parametru.
Zwroty | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
initLogging
protected void initLogging ()
Inicjowanie dziennika ddmlib.
Wyeksponowane, aby można było je zasymulować w testach jednostkowych.
isShutdown
protected boolean isShutdown ()
Zwroty | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Zwroty | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager |
IDeviceManager |
waitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
Zaczekaj na zakończenie wszystkich wątków wywołania.