CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
😎 | com.android.tradefed.command.CommandScheduler |
Ein Planer zum Ausführen von TradeFederation-Befehlen auf allen verfügbaren Geräten.
Versucht, auszuführende Befehle basierend auf der Gesamtzahl ihrer Ausführungen zu priorisieren . z.B. Selten ausgeführte oder schnell ausgeführte Befehle werden gegenüber Befehlen mit langer Ausführungszeit priorisiert.
Wird bis zum Herunterfahren dauerhaft im Hintergrund ausgeführt.
Zusammenfassung
Öffentliche Konstruktoren | |
---|---|
CommandScheduler()
Erstellt ein |
Öffentliche Methoden | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Fügt dem Planer einen Befehl hinzu. |
void
|
addCommandFile(String cmdFilePath,
Fügt dem Planer alle Befehle aus der angegebenen Datei hinzu |
void
|
await()
Wartet, bis der Planer ausgeführt wird, einschließlich Warten auf den Abschluss der Übergabe der alten TF falls zutreffend. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Erstellen Sie eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können. |
ISandbox
|
createSandbox()
Erstellen Sie ein |
void
|
displayCommandQueue(PrintWriter printWriter)
Gibt detaillierte Debug-Informationen zum Status der Warteschlange für die Befehlsausführung aus. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Gibt eine Liste der aktuellen Befehle aus. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Speichern Sie die erweiterte XML-Datei für den Befehl mit allen
|
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Führen Sie Befehle direkt auf bereits zugewiesenen Geräten aus. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen
mit einer bereits vorhandenen |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen. |
CommandFileWatcher
|
getCommandFileWatcher()
Passenden CommandFileWatcher für diesen Planer abrufen |
int
|
getExecutingCommandCount()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Gibt die Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Gibt den Fehlercode des letzten ausgeführten Aufrufs zurück. |
Throwable
|
getLastInvocationThrowable()
Gibt das |
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 Aufrufthread verwendet wird. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Alle Befehle aus dem Planer entfernen |
void
|
run()
Der Hauptausführungsblock dieses Threads. |
void
|
setClearcutClient(ClearcutClient client)
Den Kunden für die Berichterstellung über die Nutzungsdaten einrichten |
boolean
|
shouldShutdownOnCmdfileError()
Gibt „true“ zurück, wenn der Planer bei einem Befehlsfehler heruntergefahren werden muss |
void
|
shutdown(boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren. |
void
|
shutdownHard(boolean killAdb)
Versuchen Sie, das Herunterfahren des Befehlsplaners zu erzwingen. |
void
|
shutdownHard()
Versuchen Sie, das Herunterfahren des Befehlsplaners zu erzwingen. |
void
|
shutdownOnEmpty()
Ähnlich wie „ |
void
|
start()
Startet den Planer, einschließlich Einrichten von Logging, Initialisierung von |
boolean
|
stopInvocation(ITestInvocation invocation)
Beenden Sie einen laufenden Aufruf. |
boolean
|
stopInvocation(int invocationId, String cause)
Beenden Sie einen laufenden Aufruf, indem Sie seine ID angeben. |
void
|
stopScheduling()
Neue Tests werden nicht mehr geplant und akzeptiert, Tradefed wird aber nicht beendet. |
Öffentliche Konstruktoren
CommandScheduler
public CommandScheduler ()
Erstellt ein CommandScheduler
.
Hinweis: start muss vor der Verwendung aufgerufen werden.
Öffentliche Methoden
Befehl hinzufügen
public Pair<Boolean, Integer> addCommand (String[] args)
Fügt dem Planer einen Befehl hinzu.
Ein Befehl ist im Wesentlichen eine Instanz einer Konfiguration, die ausgeführt werden soll, und der zugehörigen Argumente.
Wenn "--help" wird angegeben, wird der Hilfetext für die Konfiguration an stdout ausgegeben. Andernfalls wird die Konfiguration zur Ausführung der Warteschlange hinzugefügt.
Parameter | |
---|---|
args |
String : die Konfigurationsargumente |
Returns | |
---|---|
Pair<Boolean, Integer> |
Ein Wertepaar. Der erste Wert ist ein boolescher Wert true , wenn der Befehl hinzugefügt wurde.
erfolgreich war. Der zweite Wert ist die bekannte Befehls-Tracker-ID(nicht negativer Wert), wenn die
Befehl wurde hinzugefügt; andernfalls wird 0 zurückgegeben, wenn der Befehl für alle Geräte hinzugefügt wird.
-1. |
Ausgabe | |
---|---|
ConfigurationException |
addCommandFile (Befehlsdatei)
public void addCommandFile (String cmdFilePath,extraArgs)
Fügt dem Planer alle Befehle aus der angegebenen Datei hinzu
Parameter | |
---|---|
cmdFilePath |
String : der Dateisystempfad der comand-Datei |
extraArgs |
: ERROR(/List) von String -Argumenten, die an jeden geparsten Befehl angehängt werden sollen
aus Datei. Kann leer, aber nicht null sein. |
Ausgabe | |
---|---|
ConfigurationException |
warten
public void await ()
Wartet, bis der Planer ausgeführt wird, einschließlich Warten auf den Abschluss der Übergabe der alten TF falls zutreffend.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen.
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
TradefedDelegator |
Ausgabe | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap-
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Erstellen Sie eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können.
Parameter | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Returns | |
---|---|
|
Sandbox erstellen
public ISandbox createSandbox ()
Erstellen Sie ein ISandbox
, das der Aufruf zum Ausführen verwendet.
Returns | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Gibt detaillierte Debug-Informationen zum Status der Befehlsausführungswarteschlange aus.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Gibt eine Liste der aktuellen Befehle aus.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , in den die Ausgabe erfolgen soll. |
regex |
String : der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, um
gedruckt. Bei null werden alle Befehle ausgegeben. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , in den die Ausgabe erfolgen soll. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Speichern Sie die erweiterte XML-Datei für den Befehl mit allen
Option
-Werte, die für alle aktuellen Befehle angegeben wurden.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , an den der Status ausgegeben werden soll. |
regex |
String : der reguläre Ausdruck, mit dem Befehle in der richtigen Reihenfolge für die
zu speichern. Wenn null ist, werden alle Befehle ausgegeben. |
Befehl ausführen
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Führen Sie Befehle direkt auf bereits zugewiesenen Geräten aus.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : die zu informierenden ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
: die zu verwendende ERROR(/List |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
Ausgabe | |
---|---|
ConfigurationException |
Befehl ausführen
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen
mit einer bereits vorhandenen IInvocationContext
.
Parameter | |
---|---|
context |
IInvocationContext : eine vorhandene IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : die zu informierenden ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
Befehl ausführen
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : die zu informierenden ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Returns | |
---|---|
long |
Die Aufruf-ID des geplanten Befehls. |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Passenden CommandFileWatcher für diesen Planer abrufen
Returns | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück.
Returns | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Gibt die Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID des Aufrufs. |
Returns | |
---|---|
String |
Ein String mit Informationen zum Aufruf. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Gibt den Fehlercode des letzten ausgeführten Aufrufs zurück. Gibt 0 (kein Fehler) zurück, wenn noch kein Aufruf ausgeführt wurde.
Returns | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable (GetLastInvocationThrowable)
public Throwable getLastInvocationThrowable ()
Gibt das Throwable
des letzten ausgeführten Aufrufs zurück.
Gibt null zurück, wenn kein Wurfgerät verfügbar ist.
Returns | |
---|---|
Throwable |
getReadyCommandCount (Anzahl der Bereitschaftsbefehle)
public int getReadyCommandCount ()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück.
Returns | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Returns | |
---|---|
long |
isDeviceInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Gibt „true“ zurück, wenn das Gerät von einem aktiven Aufrufthread verwendet wird.
Parameter | |
---|---|
device |
ITestDevice |
Returns | |
---|---|
boolean |
isHerunterfahrenTDown
public boolean isShuttingDown ()
Returns | |
---|---|
boolean |
BenachrichtigtDateigeändert
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Alle Befehle aus dem Planer entfernen
Homerun
public void run ()
Der Hauptausführungsblock dieses Threads.
SetClearcutClient
public void setClearcutClient (ClearcutClient client)
Den Kunden für die Berichterstellung über die Nutzungsdaten einrichten
Parameter | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Gibt „true“ zurück, wenn der Planer bei einem Befehlsfehler heruntergefahren werden muss
Returns | |
---|---|
boolean |
herunterfahren
public void shutdown (boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.
Parameter | |
---|---|
notifyStop |
boolean : Wenn „true“, werden Aufrufe des TF-Herunterfahrens benachrichtigt. |
Herunterfahren schwierig
public void shutdownHard (boolean killAdb)
Versuchen Sie, das Herunterfahren des Befehlsplaners zu erzwingen.
Ähnlich wie „shutdown()
“, beendet aber optional die ADB-Verbindung in einem
„Inspirieren“ laufenden -Aufrufen schneller abgeschlossen.
Parameter | |
---|---|
killAdb |
boolean |
Herunterfahren schwierig
public void shutdownHard ()
Versuchen Sie, das Herunterfahren des Befehlsplaners zu erzwingen. Entspricht ShutdownHard(true).
ShutdownOnEmpty
public void shutdownOnEmpty ()
Ähnlich wie „shutdown()
“, wird aber darauf gewartet, dass alle Befehle ausgeführt wurden
bevor Sie die Seite verlassen.
Wenn sich Befehle im Schleifenmodus befinden, wird der Planer niemals beendet.
start
public void start ()
Startet den Planer, einschließlich Einrichten von Logging, Initialisierung von DeviceManager
usw.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Beenden Sie einen laufenden Aufruf.
Parameter | |
---|---|
invocation |
ITestInvocation |
Returns | |
---|---|
boolean |
„true“, wenn der Aufruf beendet wurde, andernfalls „false“ |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Beenden Sie einen laufenden Aufruf, indem Sie seine ID angeben.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID des Aufrufs. |
cause |
String : der Grund für das Beenden des Aufrufs. |
Returns | |
---|---|
boolean |
„true“, wenn der Aufruf beendet wurde, andernfalls „false“ |
stopScheduling
public void stopScheduling ()
Neue Tests werden nicht mehr geplant und akzeptiert, Tradefed wird aber nicht beendet. Dadurch soll die Ein Herunterfahren in zwei Schritten, bei dem zuerst alle laufenden Tests geleert und dann Tradefed beendet wird .
Geschützte Methoden
CleanUp
protected void cleanUp ()
Schließt die Logs und führt alle anderen erforderlichen Bereinigungen durch, bevor wir den Vorgang beenden.
Wird ausgesetzt, damit Einheitentests Simulationen können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
IConfiguration |
Ausgabe | |
---|---|
ConfigurationException |
InvocationContext erstellen
protected IInvocationContext createInvocationContext ()
Returns | |
---|---|
IInvocationContext |
DryRunCommandReporting (Berichte)
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Bestimmt, ob ein bestimmter Befehl ein Probelauf ist. Wenn der Befehl ein Probelauf ist, validieren Sie ihn. Wenn wenn es ein Konfigurationsproblem gibt, wird eine ConfigurationException ausgelöst.
Parameter | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) , um Ereignisse für die Probelaufvalidierung zu melden. |
config |
IConfiguration |
Returns | |
---|---|
void |
"true", wenn es sich bei dem Befehl um einen Probelauf handelt, andernfalls "false". |
Ausgabe | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
Befehl ausführen
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Returns | |
---|---|
long |
Ausgabe | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen eines Verweises auf IConfigurationFactory
Returns | |
---|---|
IConfigurationFactory |
das zu verwendende IConfigurationFactory |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Returns | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Factory-Methode zum Abrufen eines Verweises auf IDeviceManager
Returns | |
---|---|
IDeviceManager |
das zu verwendende IDeviceManager |
GetKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Ruft ein IKeyStoreClient
mit dem in IGlobalConfiguration
deklarierten IKeyStoreFactory
oder null ab, wenn kein definiert ist.
Returns | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Returns | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Initialisiert das ddmlib-Log.
Wird ausgesetzt, damit Einheitentests Simulationen können.
isHerunterfahren
protected boolean isShutdown ()
Returns | |
---|---|
boolean |
ProcessReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |