CommandScheduler
public
class
CommandScheduler
extends Thread
implements
ICommandScheduler
| java.lang.Object | ||
| ↳ | java.lang.Thread | |
| ↳ | com.android.tradefed.command.CommandScheduler | |
Ein Scheduler zum Ausführen von TradeFederation-Befehlen auf allen verfügbaren Geräten.
Es wird versucht, Befehle basierend auf der Gesamtzahl ihrer Ausführungszeit zu priorisieren. Seltene oder schnell ausgeführte Befehle werden beispielsweise gegenüber Befehlen mit langer Ausführungszeit priorisiert.
Wird im Hintergrund bis zum Herunterfahren ausgeführt.
Zusammenfassung
Öffentliche Konstruktoren | |
|---|---|
CommandScheduler()
Erstellt ein |
|
Öffentliche Methoden | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Fügt dem Scheduler einen Befehl hinzu. |
void
|
addCommandFile(String cmdFilePath, List<String> extraArgs)
Fügt alle Befehle aus der angegebenen Datei dem Scheduler hinzu |
void
|
await()
Wartet, bis der Planer mit der Ausführung beginnt, einschließlich des Wartens auf die Übergabe vom alten TF, falls zutreffend. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Erstellen Sie einen Delegator über die Befehlszeile, um zu prüfen, ob der Lauf delegiert werden muss. |
static
Map<ITestDevice, FreeDeviceState>
|
createReleaseMap(IInvocationContext context, Throwable e)
Erstelle eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können. |
ISandbox
|
createSandbox()
Erstellen Sie ein |
void
|
displayCommandQueue(PrintWriter printWriter)
Gibt detaillierte Debugging-Informationen zum Status der Befehlsausführungswarteschlange aus. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Eine Liste der aktuellen Befehle ausgeben. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Geben Sie die erweiterte XML-Datei für den Befehl mit allen |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn mit einem bereits vorhandenen |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist einem Gerät direkt ein Gerät zu und führt einen Befehl aus, ohne ihn der Befehlswarteschlange hinzuzufügen. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
Befehle direkt auf bereits zugewiesenen Geräten ausführen |
CommandFileWatcher
|
getCommandFileWatcher()
Den entsprechenden CommandFileWatcher für diesen Scheduler abrufen |
int
|
getExecutingCommandCount()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Gibt Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Gibt den Fehlercode des letzten Aufrufs zurück, der ausgeführt wurde. |
Throwable
|
getLastInvocationThrowable()
Gibt den |
int
|
getReadyCommandCount()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Gibt „true“ zurück, wenn das Gerät von einem aktiven Aufruf-Thread verwendet wird. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile, List<String> extraArgs)
|
void
|
removeAllCommands()
Alle Befehle aus dem Scheduler entfernen |
void
|
run()
Der Hauptausführungsblock dieses Threads. |
void
|
setClearcutClient(ClearcutClient client)
Client für die Meldung von Harness-Daten festlegen |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
boolean
|
shouldShutdownOnCmdfileError()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss. |
void
|
shutdown(boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren. |
void
|
shutdownHard(boolean killAdb)
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. |
void
|
shutdownHard()
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. |
void
|
shutdownOnEmpty()
Ähnlich wie |
void
|
start()
Startet den Scheduler, einschließlich der Einrichtung des Loggings, der Initialisierung von |
boolean
|
stopInvocation(ITestInvocation invocation)
Laufenden Aufruf beenden |
boolean
|
stopInvocation(int invocationId, String cause)
Sie können einen laufenden Aufruf beenden, indem Sie seine ID angeben. |
void
|
stopScheduling()
Das Planen und Akzeptieren neuer Tests wird beendet, Tradefed wird jedoch nicht beendet. |
Öffentliche Konstruktoren
CommandScheduler
public CommandScheduler ()
Erstellt ein CommandScheduler.
Hinweis: „start“ muss vor der Verwendung aufgerufen werden.
Öffentliche Methoden
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Fügt dem Scheduler einen Befehl hinzu.
Ein Befehl ist im Grunde eine Instanz einer Konfiguration, die ausgeführt werden soll, und die zugehörigen Argumente.
Wenn das Argument „--help“ angegeben ist, wird der Hilfetext für die Konfiguration in stdout ausgegeben. Andernfalls wird die Konfiguration der Warteschlange hinzugefügt.
| Parameter | |
|---|---|
args |
String: die Konfigurationsargumente. |
| Gibt Folgendes zurück: | |
|---|---|
Pair<Boolean, Integer> |
Ein Wertepaar. Der erste Wert ist ein boolescher Wert true, wenn der Befehl erfolgreich hinzugefügt wurde. Der zweite Wert ist die ID des bekannten Befehls-Trackers(nicht negativer Wert), wenn der Befehl erfolgreich hinzugefügt wurde. Wenn der Befehl für alle Geräte hinzugefügt wird, wird 0 zurückgegeben, andernfalls -1. |
| Löst aus | |
|---|---|
ConfigurationException |
|
addCommandFile
public void addCommandFile (String cmdFilePath,
List<String> extraArgs)Fügt alle Befehle aus der angegebenen Datei dem Scheduler hinzu
| Parameter | |
|---|---|
cmdFilePath |
String: der Dateisystempfad der Befehlsdatei |
extraArgs |
List: Eine List mit String-Argumenten, die an jeden aus der Datei geparsten Befehl angehängt werden sollen. Kann leer sein, darf aber nicht null sein. |
| Löst aus | |
|---|---|
ConfigurationException |
|
await
public void await ()
Wartet, bis der Planer mit der Ausführung beginnt, einschließlich des Wartens auf die Übergabe vom alten TF, falls zutreffend.
| Löst aus | |
|---|---|
InterruptedException |
|
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Erstellen Sie einen Delegator über die Befehlszeile, um zu prüfen, ob der Lauf delegiert werden muss.
| Parameter | |
|---|---|
args |
String |
| Gibt Folgendes zurück: | |
|---|---|
TradefedDelegator |
|
| Löst aus | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
createReleaseMap
public static Map<ITestDevice, FreeDeviceState> createReleaseMap (IInvocationContext context, Throwable e)
Erstelle eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können.
| Parameter | |
|---|---|
context |
IInvocationContext |
e |
Throwable |
| Gibt Folgendes zurück: | |
|---|---|
Map<ITestDevice, FreeDeviceState> |
|
createSandbox
public ISandbox createSandbox ()
Erstellen Sie ein ISandbox, das für die Ausführung des Aufrufs verwendet wird.
| Gibt Folgendes zurück: | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Gibt detaillierte Debugging-Informationen zum Status der Befehlsausführungswarteschlange aus.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter,
String regex)Eine Liste der aktuellen Befehle ausgeben.
| Parameter | |
|---|---|
printWriter |
PrintWriter: Die PrintWriter, in die die Ausgabe geschrieben werden soll. |
regex |
String: Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit sie ausgegeben werden. Wenn „null“, werden alle Befehle ausgegeben. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an.
| Parameter | |
|---|---|
printWriter |
PrintWriter: Die PrintWriter, in die die Ausgabe geschrieben werden soll. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter,
String regex)Geben Sie die erweiterte XML-Datei für den Befehl mit allen Option-Werten aus, die für alle aktuellen Befehle angegeben sind.
| Parameter | |
|---|---|
printWriter |
PrintWriter: Der PrintWriter, in den der Status ausgegeben werden soll. |
regex |
String: Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit die XML-Datei ausgegeben wird. Wenn null, werden alle Befehle ausgegeben. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen.
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll |
device |
ITestDevice: die zu verwendende ITestDevice |
args |
String: die Befehlsargumente |
| Gibt Folgendes zurück: | |
|---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
| Löst aus | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn mit einem bereits vorhandenen IInvocationContext der Befehlswarteschlange hinzuzufügen.
| Parameter | |
|---|---|
context |
IInvocationContext: ein vorhandenes IInvocationContext. |
listener |
ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll |
args |
String: die Befehlsargumente |
| Gibt Folgendes zurück: | |
|---|---|
long |
|
| Löst aus | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist einem Gerät direkt ein Gerät zu und führt einen Befehl aus, ohne ihn der Befehlswarteschlange hinzuzufügen.
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll |
args |
String: die Befehlsargumente |
| Gibt Folgendes zurück: | |
|---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
| Löst aus | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
Befehle direkt auf bereits zugewiesenen Geräten ausführen
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll |
reservedDevices |
List: die zu verwendende ERROR(/List |
args |
String: die Befehlsargumente |
| Gibt Folgendes zurück: | |
|---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
| Löst aus | |
|---|---|
ConfigurationException |
|
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Den entsprechenden CommandFileWatcher für diesen Scheduler abrufen
| Gibt Folgendes zurück: | |
|---|---|
CommandFileWatcher |
|
getExecutingCommandCount
public int getExecutingCommandCount ()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück.
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getHostState
public CommandScheduler.HostState getHostState ()
| Gibt Folgendes zurück: | |
|---|---|
CommandScheduler.HostState |
|
getInvocationInfo
public String getInvocationInfo (int invocationId)
Gibt Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird.
| Parameter | |
|---|---|
invocationId |
int: die Tracking-ID des Aufrufs. |
| Gibt Folgendes zurück: | |
|---|---|
String |
Ein String mit Informationen zum Aufruf. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Gibt den Fehlercode des letzten Aufrufs zurück, der ausgeführt wurde. Gibt 0 (kein Fehler) zurück, wenn noch kein Aufruf ausgeführt wurde.
| Gibt Folgendes zurück: | |
|---|---|
CommandRunner.ExitCode |
|
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Gibt den Throwable des letzten Aufrufs zurück.
Gibt „null“ zurück, wenn kein auslösbarer Fehler verfügbar ist.
| Gibt Folgendes zurück: | |
|---|---|
Throwable |
|
getReadyCommandCount
public int getReadyCommandCount ()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück.
| Gibt Folgendes zurück: | |
|---|---|
int |
|
getShutdownTimeout
public long getShutdownTimeout ()
| Gibt Folgendes zurück: | |
|---|---|
long |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Gibt „true“ zurück, wenn das Gerät von einem aktiven Aufruf-Thread verwendet wird.
| Parameter | |
|---|---|
device |
ITestDevice |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
List<String> extraArgs)| Parameter | |
|---|---|
cmdFile |
File |
extraArgs |
List |
removeAllCommands
public void removeAllCommands ()
Alle Befehle aus dem Scheduler entfernen
run
public void run ()
Der Hauptausführungsblock dieses Threads.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Client für die Meldung von Harness-Daten festlegen
| Parameter | |
|---|---|
client |
ClearcutClient |
setMaxPollTime
public void setMaxPollTime (long polling)
| Parameter | |
|---|---|
polling |
long |
setPrintSchedulingWarning
public void setPrintSchedulingWarning (boolean print)
| Parameter | |
|---|---|
print |
boolean |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss.
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
shutdown
public void shutdown (boolean notifyStop)
Versuchen Sie, den Befehls-Scheduler ordnungsgemäß herunterzufahren.
| Parameter | |
|---|---|
notifyStop |
boolean: Wenn „true“, werden Aufrufe über das Herunterfahren von TF benachrichtigt. |
shutdownHard
public void shutdownHard (boolean killAdb)
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.
Ähnlich wie shutdown(), aber die ADB-Verbindung wird optional auch beendet, um laufende Aufrufe schneller abzuschließen.
| Parameter | |
|---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. Identisch mit shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Ähnlich wie shutdown(), wartet aber, bis alle Befehle ausgeführt wurden, bevor es beendet wird.
Wenn sich Befehle im Schleifenmodus befinden, wird der Scheduler nie beendet.
start
public void start ()
Startet den Scheduler, einschließlich der Einrichtung des Loggings, der Initialisierung von DeviceManager usw.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Laufenden Aufruf beenden
| Parameter | |
|---|---|
invocation |
ITestInvocation |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
„true“, wenn der Aufruf beendet wurde, andernfalls „false“ |
stopInvocation
public boolean stopInvocation (int invocationId,
String cause)Sie können einen laufenden Aufruf beenden, indem Sie seine ID angeben.
| Parameter | |
|---|---|
invocationId |
int: die Tracking-ID des Aufrufs. |
cause |
String: Der Grund für das Beenden des Aufrufs. |
| Gibt Folgendes zurück: | |
|---|---|
boolean |
„true“, wenn der Aufruf beendet wurde, andernfalls „false“ |
stopScheduling
public void stopScheduling ()
Das Planen und Akzeptieren neuer Tests wird beendet, Tradefed wird jedoch nicht beendet. Dadurch soll ein zweistufiges Herunterfahren ermöglicht werden, bei dem zuerst alle laufenden Tests beendet und dann der Tradefed-Prozess beendet wird.
Geschützte Methoden
cleanUp
protected void cleanUp ()
Schließt die Logs und führt alle anderen erforderlichen Bereinigungen durch, bevor wir beenden.
Wird bereitgestellt, damit Einheitentests simuliert werden können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
| Parameter | |
|---|---|
args |
String |
| Gibt Folgendes zurück: | |
|---|---|
IConfiguration |
|
| Löst aus | |
|---|---|
ConfigurationException |
|
createInvocationContext
protected IInvocationContext createInvocationContext ()
| Gibt Folgendes zurück: | |
|---|---|
IInvocationContext |
|
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Ermittelt, ob ein bestimmter Befehl ein Probelauf ist. Wenn es sich bei dem Befehl um einen Probelauf handelt, validieren Sie ihn. Wenn es Probleme mit der Konfiguration gibt, wird eine ConfigurationException ausgelöst.
| Parameter | |
|---|---|
handler |
ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) zum Melden von Ereignissen für die Dry-Run-Validierung. |
config |
IConfiguration |
| Gibt Folgendes zurück: | |
|---|---|
void |
„true“, wenn der Befehl ein Probelauf ist, andernfalls „false“. |
| Löst aus | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
| Parameter | |
|---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
List |
args |
String |
| Gibt Folgendes zurück: | |
|---|---|
long |
|
| Löst aus | |
|---|---|
ConfigurationException |
|
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen einer Referenz für IConfigurationFactory
| Gibt Folgendes zurück: | |
|---|---|
IConfigurationFactory |
Der zu verwendende IConfigurationFactory |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
| Gibt Folgendes zurück: | |
|---|---|
DeviceManagementGrpcServer |
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Factory-Methode zum Abrufen einer Referenz für IDeviceManager
| Gibt Folgendes zurück: | |
|---|---|
IDeviceManager |
Der zu verwendende IDeviceManager |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
| Gibt Folgendes zurück: | |
|---|---|
TradefedFeatureServer |
|
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Ruft ein IKeyStoreClient mit dem in ERROR(/IGlobalConfiguration) deklarierten IKeyStoreFactory ab oder „null“, wenn keines definiert ist.
| Gibt Folgendes zurück: | |
|---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
| Gibt Folgendes zurück: | |
|---|---|
TestInvocationManagementServer |
|
initLogging
protected void initLogging ()
Initialisiert das ddmlib-Log.
Wird bereitgestellt, damit Einheitentests simuliert werden können.
isShutdown
protected boolean isShutdown ()
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
| Parameter | |
|---|---|
manager |
IDeviceManager |
shouldMarkReleased
protected boolean shouldMarkReleased ()
| Gibt Folgendes zurück: | |
|---|---|
boolean |
|