CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | 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 der Ausführungszeiten zu priorisieren. Beispielsweise werden selten oder schnell ausgeführte Befehle vor Befehlen mit langer Ausführungszeit priorisiert.
Wird bis zum Herunterfahren im Hintergrund ausgeführt.
Zusammenfassung
Verschachtelte Klassen | |
---|---|
enum |
CommandScheduler.HostState
Enums für verschiedene Status des Hosts |
Öffentliche Konstruktoren | |
---|---|
CommandScheduler()
Erstellt einen |
Öffentliche Methoden | |
---|---|
boolean
|
addCommand(String[] args)
Fügt dem Scheduler einen Befehl hinzu. |
void
|
addCommandFile(String cmdFilePath,
Fügen Sie dem Scheduler alle Befehle aus der angegebenen Datei hinzu. |
void
|
await()
Wartet, bis der Scheduler gestartet wird, einschließlich des Wartens auf die Fertigstellung der Übergabe von der alten TF, falls zutreffend. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu prüfen, ob die Ausführung delegiert werden muss. |
void
|
completeHandover()
Informiert den Befehlsplaner darüber, dass eine initiierte Übergabesequenz vollständig abgeschlossen ist und der Remote-Manager auf dem Standardport neu initialisiert werden soll. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Erstellen Sie eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können. |
ISandbox
|
createSandbox()
Erstellen Sie einen |
void
|
displayCommandQueue(PrintWriter printWriter)
Detaillierte Informationen zur Fehlerbehebung zum Status der Befehlsausführungswarteschlange ausgeben. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Liste der aktuellen Befehle ausgeben |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Eine Liste der aktuellen Aufrufe. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Dumpt die erweiterte XML-Datei für den Befehl mit allen |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen. Dabei wird eine bereits vorhandene |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hier wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen. |
CommandFileWatcher
|
getCommandFileWatcher()
Entsprechende |
int
|
getExecutingCommandCount()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Gib die Informationen zu einem Aufruf zurück, indem du die Aufruf-ID angibst. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Gibt den Fehlercode der letzten Ausführung zurück. |
Throwable
|
getLastInvocationThrowable()
Gibt die |
int
|
getReadyCommandCount()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Informiert den Befehlsplaner darüber, dass der anfängliche Austausch von Geräten und Befehlen abgeschlossen ist und der Vorgang geplant werden kann. |
boolean
|
handoverShutdown(int handoverPort)
Startet eine |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Alle Befehle aus dem Scheduler entfernen |
void
|
run()
Der Hauptausführungsblock dieses Threads. |
void
|
setClearcutClient(ClearcutClient client)
Client so einstellen, dass Harness-Daten erfasst werden |
boolean
|
shouldShutdownOnCmdfileError()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss. |
void
|
shutdown()
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren. |
void
|
shutdownHard(boolean killAdb)
Versuchen Sie, den Befehlsplaner zu erzwingen. |
void
|
shutdownHard()
Versuchen Sie, den Befehlsplaner zu erzwingen. |
void
|
shutdownOnEmpty()
Ähnlich wie |
void
|
start()
Startet den Scheduler, einschließlich Einrichtung des Loggings, Initialisierung von |
boolean
|
stopInvocation(ITestInvocation invocation)
Beenden Sie eine laufende Aufrufabfolge. |
boolean
|
stopInvocation(int invocationId, String cause)
Sie können eine laufende Aufrufe beenden, indem Sie die ID angeben. |
Geschützte Methoden | |
---|---|
void
|
cleanUp()
Schließt die Protokolle und führt alle anderen erforderlichen Bereinigungen durch, bevor wir beenden. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Factory-Methode zum Abrufen einer Referenz auf die |
IDeviceManager
|
getDeviceManager()
Factory-Methode zum Abrufen einer Referenz auf die |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Hiermit wird eine |
void
|
initLogging()
Initialisiert das ddmlib-Protokoll. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Warten Sie, bis alle Aufrufthreads abgeschlossen sind. |
Öffentliche Konstruktoren
CommandScheduler
public CommandScheduler ()
Erstellt einen CommandScheduler
.
Hinweis: „start“ muss vor der Verwendung aufgerufen werden.
Öffentliche Methoden
addCommand
public boolean addCommand (String[] args)
Fügt dem Scheduler einen Befehl hinzu.
Ein Befehl ist im Wesentlichen eine Instanz einer ausführbaren Konfiguration und die zugehörigen Argumente.
Wenn das Argument „--help“ angegeben wird, wird der Hilfetext für die Konfiguration auf stdout ausgegeben. Andernfalls wird die Konfiguration der Warteschlange zum Ausführen hinzugefügt.
Parameter | |
---|---|
args |
String : die Konfigurationsargumente. |
Returns | |
---|---|
boolean |
true , wenn der Befehl erfolgreich hinzugefügt wurde |
Ausgabe | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Fügen Sie dem Scheduler alle Befehle aus der angegebenen Datei hinzu.
Parameter | |
---|---|
cmdFilePath |
String : Dateisystempfad der Befehlsdatei |
extraArgs |
: Eine ERROR(/List) von String Argumenten, die jedem aus der Datei geparsten Befehl angehängt werden sollen. Kann leer sein, darf aber nicht null sein. |
Ausgabe | |
---|---|
ConfigurationException |
await
public void await ()
Wartet, bis der Scheduler gestartet wird, einschließlich des Wartens auf die Fertigstellung der Übergabe von der alten TF, falls zutreffend.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Erstellen Sie einen Delegator anhand der Befehlszeile, um zu prüfen, ob die Ausführung delegiert werden muss.
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
TradefedDelegator |
Ausgabe | |
---|---|
ConfigurationException |
completeHandover
public void completeHandover ()
Informiert den Befehlsplaner darüber, dass eine initiierte Übergabesequenz vollständig abgeschlossen ist und der Remote-Manager auf dem Standardport neu initialisiert werden soll.
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 | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Erstellen Sie einen ISandbox
, der für die Ausführung der Aufforderung verwendet wird.
Returns | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Detaillierte Informationen zur Fehlerbehebung zum Status der Befehlsausführungswarteschlange ausgeben.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Liste der aktuellen Befehle ausgeben
Parameter | |
---|---|
printWriter |
PrintWriter : die ERROR(/PrintWriter) , in die die Ausgabe erfolgen soll. |
regex |
String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden müssen, um gedruckt zu werden. Wenn „null“ ist, werden alle Befehle ausgegeben.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Eine Liste der aktuellen Aufrufe.
Parameter | |
---|---|
printWriter |
PrintWriter : die ERROR(/PrintWriter) , in die die Ausgabe erfolgen soll.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Dumpt die erweiterte XML-Datei für den Befehl mit allen Option
-Werten, die für alle aktuellen Befehle angegeben sind.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , auf das der Status ausgegeben werden soll. |
regex |
String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit die XML-Datei gedumpt wird. Wenn „null“ festgelegt ist, werden alle Befehle gedumpt.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Befehl direkt auf einem bereits zugewiesenen Gerät ausführen.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
device |
ITestDevice : der zu verwendende ITestDevice |
args |
String : die Befehlsargumente |
Ausgabe | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen. Dabei wird eine bereits vorhandene IInvocationContext
verwendet.
Parameter | |
---|---|
context |
IInvocationContext : eine vorhandene IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Hiermit wird ein Gerät direkt zugewiesen und ein Befehl ausgeführt, ohne ihn der Befehlswarteschlange hinzuzufügen.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : der zu benachrichtigende ICommandScheduler.IScheduledInvocationListener |
args |
String : die Befehlsargumente |
Ausgabe | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Entsprechende 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)
Gib die Informationen zu einem Aufruf zurück, indem du die Aufruf-ID angibst.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID der Aufrufs. |
Returns | |
---|---|
String |
Einen String mit Informationen zum Aufruf.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Gibt den Fehlercode der letzten Ausführung zurück. Gibt 0 (kein Fehler) zurück, wenn noch keine Aufrufe ausgeführt wurden.
Returns | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Gibt die Throwable
aus der letzten Ausführung zurück.
Gibt null zurück, wenn kein throwable verfügbar ist.
Returns | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück.
Returns | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Returns | |
---|---|
long |
handoverInitiationComplete
public void handoverInitiationComplete ()
Informiert den Befehlsplaner darüber, dass der anfängliche Austausch von Geräten und Befehlen abgeschlossen ist und der Vorgang geplant werden kann.
handoverShutdown
public boolean handoverShutdown (int handoverPort)
Startet eine shutdown()
und übergibt sie an einen anderen Tradefed-Prozess auf demselben Host.
Der Scheduler informiert den Remote-Tradefed-Prozess, der auf diesem Port wartet, über freigegebene Geräte, sobald sie verfügbar sind.
Parameter | |
---|---|
handoverPort |
int |
Returns | |
---|---|
boolean |
true , wenn die Übergabe erfolgreich gestartet wurde, false andernfalls
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Alle Befehle aus dem Scheduler entfernen
Homerun
public void run ()
Der Hauptausführungsblock dieses Threads.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Client so einstellen, dass Harness-Daten erfasst werden
Parameter | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss.
Returns | |
---|---|
boolean |
Herunterfahren
public void shutdown ()
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.
Löscht Befehle, die noch nicht getestet wurden, und fordert alle laufenden Aufrufe zum ordnungsgemäßen Beenden auf.
Nach dem Aufruf von „shutdown“ wartet der Haupt-Loop des Schedulers, bis alle laufenden Aufrufe abgeschlossen sind, bevor er vollständig beendet wird.
shutdownHard
public void shutdownHard (boolean killAdb)
Versuchen Sie, den Befehlsplaner zu erzwingen.
Ähnlich wie shutdown()
, aber optional wird auch die adb-Verbindung beendet, um laufende Aufrufe zu beschleunigen.
Parameter | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Versuchen Sie, den Befehlsplaner zu erzwingen. Entspricht shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Ähnlich wie shutdown()
, wartet aber, bis alle Befehle ausgeführt wurden, bevor das Programm beendet wird.
Wenn Befehle im Loop-Modus sind, wird der Scheduler nie beendet.
start
public void start ()
Startet den Scheduler, einschließlich Einrichtung des Loggings, Initialisierung von DeviceManager
usw.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Beenden Sie eine laufende Aufrufabfolge.
Parameter | |
---|---|
invocation |
ITestInvocation |
Returns | |
---|---|
boolean |
„true“, wenn die Aufrufe beendet wurden, andernfalls „false“ |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Sie können eine laufende Aufrufe beenden, indem Sie die ID angeben.
Parameter | |
---|---|
invocationId |
int : die Tracking-ID der Aufrufs. |
cause |
String : Der Grund für das Beenden der Aufrufs. |
Returns | |
---|---|
boolean |
„true“, wenn die Aufrufe beendet wurden, andernfalls „false“ |
Geschützte Methoden
cleanUp
protected void cleanUp ()
Schließt die Protokolle und führt alle anderen erforderlichen Bereinigungen durch, bevor wir beenden.
Sie werden freigegeben, damit sie in Unittests gemockt werden können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args |
String |
Returns | |
---|---|
IConfiguration |
Ausgabe | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Returns | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen einer Referenz auf die IConfigurationFactory
Returns | |
---|---|
IConfigurationFactory |
den zu verwendenden IConfigurationFactory
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Factory-Methode zum Abrufen einer Referenz auf die IDeviceManager
Returns | |
---|---|
IDeviceManager |
den zu verwendenden IDeviceManager
|
getHostOptions
protected IHostOptions getHostOptions ()
Returns | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Hiermit wird eine IKeyStoreClient
mit dem in IGlobalConfiguration
deklarierten IKeyStoreFactory
abgerufen. Ist kein IKeyStoreFactory
definiert, wird „null“ zurückgegeben.
Returns | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
initLogging
protected void initLogging ()
Initialisiert das ddmlib-Protokoll.
Sie werden freigegeben, damit sie in Unittests gemockt werden können.
isShutdown
protected boolean isShutdown ()
Returns | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Returns | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |
waitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
Warten Sie, bis alle Aufrufthreads abgeschlossen sind.