Algorytm poleceń
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Algorytm szeregowania do uruchamiania poleceń federacji zakupowej na wszystkich dostępnych urządzeniach.
Zostanie podjęta próba nadania priorytetu poleceniom na podstawie łącznej liczby ich wykonania obecnie się znajdujesz. np. polecenia, które są wykonywane rzadko lub są szybko wykonywane, mają wyższy priorytet niż polecenia długotrwałe.
Działa w tle bez końca, aż do momentu wyłączenia.
Podsumowanie
Zagnieżdżone klasy | |
---|---|
enum |
CommandScheduler.HostState
Wyliczenia różnych stanów hosta |
Konstruktory publiczne | |
---|---|
CommandScheduler()
Tworzy |
Metody publiczne | |
---|---|
boolean
|
addCommand(String[] args)
Dodaje polecenie do algorytmu szeregowania. |
void
|
addCommandFile(String cmdFilePath,
Dodaje wszystkie polecenia z danego pliku do algorytmu szeregowania |
void
|
await()
Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazywania ze starego pliku TF w odpowiednich przypadkach. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Utwórz podmiot przekazujący dostęp w wierszu poleceń, aby sprawdzić, czy trzeba przekazać uruchomienie. |
void
|
completeHandover()
Informuje algorytm szeregowania poleceń, że zainicjowana sekwencja przełączania jest w pełni ukończona i powinien ponownie zainicjować swojego menedżera zdalnego na porcie domyślnym. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby móc je odpowiednio udostępniać. |
ISandbox
|
createSandbox()
Utwórz |
void
|
displayCommandQueue(PrintWriter printWriter)
Przekazuj szczegółowe dane debugowania dotyczące stanu kolejki wykonywania poleceń. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Na wyjściu generuje listę bieżących poleceń. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Wyświetla listę bieżących wywołań. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Zrzuć rozwinięty plik XML dla polecenia ze wszystkimi
Dla wszystkich bieżących poleceń określono wartości |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonaj polecenie bezpośrednio na przydzielonym już urządzeniu. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń
przy użyciu już istniejącego elementu |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń. |
CommandFileWatcher
|
getCommandFileWatcher()
Pobierz odpowiednią funkcję |
int
|
getExecutingCommandCount()
Zwraca liczbę poleceń w stanie wykonania. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Zwraca informacje o jednostce organizacyjnej wywołania, która zawiera identyfikator wywołania. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Zwraca kod błędu ostatniego uruchomionego wywołania. |
Throwable
|
getLastInvocationThrowable()
Zwraca |
int
|
getReadyCommandCount()
Zwraca liczbę poleceń w stanie gotowości w kolejce. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Informuje program szeregowania poleceń o początkowej wymianie używanych urządzeń i poleceń i można rozpocząć planowanie. |
boolean
|
handoverShutdown(int handoverPort)
Inicjuje |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Usuń wszystkie polecenia z algorytmu szeregowania |
void
|
run()
Główny blok wykonania w tym wątku. |
void
|
setClearcutClient(ClearcutClient client)
Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych |
boolean
|
shouldShutdownOnCmdfileError()
Zwraca wartość true, jeśli w przypadku błędu polecenia trzeba wyłączyć algorytm szeregowania |
void
|
shutdown()
Spróbuj płynnie wyłączyć algorytm szeregowania poleceń. |
void
|
shutdownHard(boolean killAdb)
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń. |
void
|
shutdownHard()
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń. |
void
|
shutdownOnEmpty()
Podobnie jak |
void
|
start()
Uruchamia algorytm szeregowania, w tym konfigurację logowania, inicjowanie |
boolean
|
stopInvocation(ITestInvocation invocation)
Zatrzymaj uruchomione wywołanie. |
boolean
|
stopInvocation(int invocationId, String cause)
Zatrzymaj uruchomione wywołanie, podając jego identyfikator. |
Metody chronione | |
---|---|
void
|
cleanUp()
Zamyka logi i przeprowadza inne niezbędne działania, zanim zakończy grę. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Metoda fabryczna polegająca na uzyskiwaniu odwołania do |
IDeviceManager
|
getDeviceManager()
Metoda fabryczna polegająca na uzyskiwaniu odwołania do |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Pobiera |
void
|
initLogging()
Inicjuje log ddmlib. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Poczekaj na zakończenie wszystkich wątków wywołań. |
Konstruktory publiczne
Algorytm poleceń
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 algorytmu szeregowania.
Polecenie to zasadniczo instancja do uruchomienia konfiguracji i powiązane z nią argumenty.
Jeśli „--help” określono tekst pomocy dla argumentu konfiguracja zostanie wpisana na stdout. W przeciwnym razie konfiguracja zostanie dodana do kolejki bieganie.
Parametry | |
---|---|
args |
String : argumenty konfiguracji. |
Zwroty | |
---|---|
boolean |
true , jeśli polecenie zostało dodane |
Rzuty | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje wszystkie polecenia z danego pliku do algorytmu szeregowania
Parametry | |
---|---|
cmdFilePath |
String : ścieżka systemu plików pliku polecenia |
extraArgs |
: ERROR(/List) z String argumentów do dołączenia do każdego przeanalizowanego polecenia
z pliku. Pole może być puste, ale nie powinno być puste. |
Rzuty | |
---|---|
ConfigurationException |
poczekaj
public void await ()
Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazywania ze starego pliku TF w odpowiednich przypadkach.
checkDelegation (Przekazywanie dostępu)
public static TradefedDelegator checkDelegation (String[] args)
Utwórz podmiot przekazujący dostęp w wierszu poleceń, aby sprawdzić, czy trzeba przekazać uruchomienie.
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
TradefedDelegator |
Rzuty | |
---|---|
ConfigurationException |
Przeniesienie zakończone
public void completeHandover ()
Informuje algorytm szeregowania poleceń, że zainicjowana sekwencja przełączania jest w pełni ukończona i powinien ponownie zainicjować swojego menedżera zdalnego na porcie domyślnym.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby móc je odpowiednio udostępniać.
Parametry | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Zwroty | |
---|---|
|
utwórz piaskownicę
public ISandbox createSandbox ()
Utwórz ISandbox
, który będzie używany do uruchamiania.
Zwroty | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Przekazuj szczegółowe dane debugowania dotyczące stanu kolejki wykonywania poleceń.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Na wyjściu generuje listę bieżących poleceń.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , do którego mają trafiać dane wyjściowe. |
regex |
String : wyrażenie regularne, do którego należy dopasowywać polecenia, aby zostały
wydrukowane. Jeśli ma wartość null, wszystkie polecenia są drukowane.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , do którego mają trafiać dane wyjściowe.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Zrzuć rozwinięty plik XML dla polecenia ze wszystkimi
Dla wszystkich bieżących poleceń określono wartości Option
.
Parametry | |
---|---|
printWriter |
PrintWriter : element ERROR(/PrintWriter) , na który ma trafiać stan. |
regex |
String : wyrażenie regularne, do którego należy dopasowywać polecenia w kolejności dla argumentu
xml do skopiowania. Jeśli ma wartość null, wszystkie polecenia są kopiowane.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonaj polecenie bezpośrednio na przydzielonym już urządzeniu.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
device |
ITestDevice : element ITestDevice , którego należy użyć |
args |
String : argumenty polecenia. |
Rzuty | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń
przy użyciu już istniejącego elementu IInvocationContext
.
Parametry | |
---|---|
context |
IInvocationContext : istniejący IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
args |
String : argumenty polecenia. |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
args |
String : argumenty polecenia. |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Pobierz odpowiednią funkcję CommandFileWatcher
dla tego algorytmu szeregowania
Zwroty | |
---|---|
CommandFileWatcher |
getExecutingCommandCount;
public int getExecutingCommandCount ()
Zwraca liczbę poleceń w stanie wykonania.
Zwroty | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Zwraca informacje o jednostce organizacyjnej wywołania, która zawiera identyfikator wywołania.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
Zwroty | |
---|---|
String |
Pole String zawierające informacje o wywołaniu.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Zwraca kod błędu ostatniego uruchomionego wywołania. Jeśli żadne wywołanie nie zostało jeszcze uruchomione, zwróć 0 (brak błędu).
Zwroty | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable,
public Throwable getLastInvocationThrowable ()
Zwraca Throwable
z ostatniego uruchomionego wywołania.
Jeśli nie ma dostępnej możliwości zgłoszenia, zwraca wartość null.
Zwroty | |
---|---|
Throwable |
getReadyCommandCount;
public int getReadyCommandCount ()
Zwraca liczbę poleceń w stanie gotowości w kolejce.
Zwroty | |
---|---|
int |
getDisabledownTimeout
public long getShutdownTimeout ()
Zwroty | |
---|---|
long |
Rozpoczęcie przekazywania
public void handoverInitiationComplete ()
Informuje program szeregowania poleceń o początkowej wymianie używanych urządzeń i poleceń i można rozpocząć planowanie.
przekazanie/Wyłączenie
public boolean handoverShutdown (int handoverPort)
Inicjuje shutdown()
i przekazywanie do innego procesu handlowego na tym samym hoście.
Algorytm szeregowania poinformuje proces zdalnego handlu elektronicznego nasłuchującego na tym porcie zwolnionych urządzeń w miarę ich udostępniania.
Parametry | |
---|---|
handoverPort |
int |
Zwroty | |
---|---|
boolean |
true , jeśli przekazywanie się udało, false
w przeciwnym razie
|
Powiadomienie o zmianie pliku
public void notifyFileChanged (File cmdFile,extraArgs)
Parametry | |
---|---|
cmdFile |
File |
extraArgs |
|
deleteAllCommands
public void removeAllCommands ()
Usuń wszystkie polecenia z algorytmu szeregowania
home run
public void run ()
Główny blok wykonania w tym wątku.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych
Parametry | |
---|---|
client |
ClearcutClient |
Należy wyłączyć_przy plikuCmdfile
public boolean shouldShutdownOnCmdfileError ()
Zwraca wartość true, jeśli w przypadku błędu polecenia trzeba wyłączyć algorytm szeregowania
Zwroty | |
---|---|
boolean |
Wyłącz
public void shutdown ()
Spróbuj płynnie wyłączyć algorytm szeregowania poleceń.
Usuwa polecenia oczekujące na przetestowanie i żąda wszystkich wywołań w toku zgrabnie wyłączyć.
Po wywołaniu wyłączenia główna pętla algorytmu szeregowania będzie czekać na wszystkie wywołania w toku przed zamknięciem.
WyłączenieHard
public void shutdownHard (boolean killAdb)
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń.
Podobnie jak shutdown()
, ale opcjonalnie spowoduje też zakończenie połączenia adb w
próba „inspirowania” trwalsze wywołania.
Parametry | |
---|---|
killAdb |
boolean |
WyłączenieHard
public void shutdownHard ()
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń. Taka sama jak w przypadku wyłączaniaHard(prawda).
zamknięcieOnPuste
public void shutdownOnEmpty ()
Podobnie jak shutdown()
, ale będzie czekać na wykonanie wszystkich poleceń
przed wyjściem.
Pamiętaj, że jeśli jakiekolwiek polecenia są w trybie pętli, algorytm szeregowania nigdy nie zostanie zamknięty.
rozpocznij
public void start ()
Uruchamia algorytm szeregowania, w tym konfigurację logowania, inicjowanie DeviceManager
itd.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Zatrzymaj uruchomione wywołanie.
Parametry | |
---|---|
invocation |
ITestInvocation |
Zwroty | |
---|---|
boolean |
„true”, jeśli wywoływanie zostało zatrzymane. W przeciwnym razie ma wartość „false” (fałsz). |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Zatrzymaj uruchomione wywołanie, podając jego identyfikator.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
cause |
String : przyczyna zatrzymania wywołania. |
Zwroty | |
---|---|
boolean |
„true”, jeśli wywoływanie zostało zatrzymane. W przeciwnym razie ma wartość „false” (fałsz). |
Metody chronione
czyszczenie
protected void cleanUp ()
Zamyka logi i przeprowadza inne niezbędne działania, zanim zakończy grę.
Dostępne, aby testy jednostkowe mogły imitować.
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 polegająca na uzyskiwaniu odwołania do IConfigurationFactory
Zwroty | |
---|---|
IConfigurationFactory |
IConfigurationFactory , którego chcesz użyć
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metoda fabryczna polegająca na uzyskiwaniu odwołania do IDeviceManager
Zwroty | |
---|---|
IDeviceManager |
IDeviceManager , którego chcesz użyć
|
getHostOptions
protected IHostOptions getHostOptions ()
Zwroty | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Pobiera IKeyStoreClient
za pomocą: IKeyStoreFactory
zadeklarowana w IGlobalConfiguration
lub null, jeśli żadna nie jest zdefiniowana.
Zwroty | |
---|---|
IKeyStoreClient |
Klient IKeyStore |
initLogging
protected void initLogging ()
Inicjuje log ddmlib.
Dostępne, aby testy jednostkowe mogły imitować.
isDisabledown
protected boolean isShutdown ()
Zwroty | |
---|---|
boolean |
jestWyłączanie
protected boolean isShuttingDown ()
Zwroty | |
---|---|
boolean |
ProcesGotowyPolecenia
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager |
IDeviceManager |
waitForAllInvocationThreads)
protected void waitForAllInvocationThreads ()
Poczekaj na zakończenie wszystkich wątków wywołań.