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 einer Gesamtzahl ihrer Ausführungszeit zu priorisieren. z. B. selten oder schnell ausgeführte Befehle werden gegenüber lang andauernden Befehlen priorisiert.
Läuft bis zum Herunterfahren für immer im Hintergrund.
Zusammenfassung
Öffentliche Konstrukteure | |
---|---|
CommandScheduler () Erstellt einen |
Öffentliche Methoden | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Fügt dem Planer einen Befehl hinzu. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Fügt dem Scheduler alle Befehle aus der angegebenen Datei hinzu |
void | await () Wartet darauf, dass der Planer zu laufen beginnt, einschließlich des Wartens auf den Abschluss der Übergabe von der alten TF, falls zutreffend. |
static TradefedDelegator | checkDelegation (String[] args) Erstellen Sie einen Delegator basierend auf 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 eine |
void | displayCommandQueue (PrintWriter printWriter) Gibt detaillierte Debug-Informationen zum Status der Befehlsausführungswarteschlange 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) Sichern Sie die erweiterte XML-Datei für den Befehl mit allen |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Befehl direkt auf bereits zugewiesenen Geräten 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 mithilfe eines bereits vorhandenen |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Weist ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen. |
CommandFileWatcher | getCommandFileWatcher () Rufen Sie den entsprechenden |
int | getExecutingCommandCount () Gibt die Anzahl der Befehle im Ausführungsstatus zurück. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Geben Sie die Informationen zu einem Aufruf zurück, indem Sie die Aufruf-ID angeben. |
CommandRunner.ExitCode | getLastInvocationExitCode () Gibt den Fehlercode des zuletzt ausgeführten Aufrufs zurück. |
Throwable | getLastInvocationThrowable () Gibt |
int | getReadyCommandCount () Gibt die Anzahl der Befehle im Bereitschaftszustand 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. |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Entfernen Sie alle Befehle aus dem Planer |
void | run () Der Hauptausführungsblock dieses Threads. |
void | setClearcutClient (ClearcutClient client) Stellen Sie den Client so ein, dass er Kabelbaumdaten meldet |
boolean | shouldShutdownOnCmdfileError () Geben Sie true zurück, wenn wir den Scheduler bei einem Befehlsfehler herunterfahren müssen |
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 inkl. Einrichtung von Logging, Init von |
boolean | stopInvocation ( ITestInvocation invocation) Stoppen Sie einen laufenden Aufruf. |
boolean | stopInvocation (int invocationId, String cause) Stoppen Sie einen laufenden Aufruf, indem Sie seine ID angeben. |
Öffentliche Konstrukteure
CommandScheduler
public CommandScheduler ()
Erstellt einen 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 auszuführenden Konfiguration und der zugehörigen Argumente.
Wenn das Argument "--help" angegeben ist, wird der Hilfetext für die Konfiguration auf stdout ausgegeben. Andernfalls wird die Konfiguration zur Ausführung zur Warteschlange hinzugefügt.
Parameter | |
---|---|
args | String : die Konfigurationsargumente. |
Kehrt zurück | |
---|---|
Pair <Boolean, Integer> | Ein Wertepaar, der erste Wert ist ein boolescher true , wenn der Befehl erfolgreich hinzugefügt wurde. Der zweite Wert ist die bekannte Befehlsverfolgungs-ID (nicht negativer Wert), wenn der Befehl erfolgreich hinzugefügt wurde, geben Sie 0 zurück, wenn der Befehl für alle Geräte hinzugefügt wurde, andernfalls -1. |
Wirft | |
---|---|
ConfigurationException |
Befehlsdatei hinzufügen
public void addCommandFile (String cmdFilePath,extraArgs)
Fügt dem Scheduler alle Befehle aus der angegebenen Datei hinzu
Parameter | |
---|---|
cmdFilePath | String : der Dateisystempfad der Befehlsdatei |
extraArgs | ERROR(/List) mit ERROR(/String) -Argumenten, die an jeden aus der Datei geparsten Befehl angehängt werden. Kann leer sein, sollte aber nicht null sein. |
Wirft | |
---|---|
ConfigurationException |
erwarten
public void await ()
Wartet darauf, dass der Planer zu laufen beginnt, einschließlich des Wartens auf den Abschluss der Übergabe von der alten TF, falls zutreffend.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Erstellen Sie einen Delegator basierend auf der Befehlszeile, um zu sehen, ob wir die Ausführung delegieren müssen.
Parameter | |
---|---|
args | String |
Kehrt zurück | |
---|---|
TradefedDelegator |
Wirft | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
ReleaseMap erstellen
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 |
Kehrt zurück | |
---|---|
Sandbox erstellen
public ISandbox createSandbox ()
Erstellen Sie eine ISandbox
, die der Aufruf zum Ausführen verwendet.
Kehrt zurück | |
---|---|
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 : der ERROR(/PrintWriter) für die Ausgabe. |
regex | String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollten, um gedruckt zu werden. Wenn null, werden alle Befehle gedruckt. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Zeigt eine Liste der aktuellen Aufrufe an.
Parameter | |
---|---|
printWriter | PrintWriter : der ERROR(/PrintWriter) für die Ausgabe. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Sichern Sie die erweiterte XML-Datei für den Befehl mit allen Option
, die für alle aktuellen Befehle angegeben sind.
Parameter | |
---|---|
printWriter | PrintWriter : der ERROR(/PrintWriter) zum Ausgeben des Status. |
regex | String : Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollten, damit die XML-Datei ausgegeben wird. Wenn null, werden alle Befehle ausgegeben. |
execBefehl
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Befehl direkt auf bereits zugewiesenen Geräten ausführen.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener |
reservedDevices | ERROR(/List ) ERROR(/List ) zu verwenden |
args | String : die Befehlsargumente |
Kehrt zurück | |
---|---|
long | Die Aufruf-ID des geplanten Befehls. |
Wirft | |
---|---|
ConfigurationException |
execBefehl
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn mithilfe eines bereits vorhandenen IInvocationContext
zur Befehlswarteschlange hinzuzufügen.
Parameter | |
---|---|
context | IInvocationContext : ein vorhandener IInvocationContext . |
listener | ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener |
args | String : die Befehlsargumente |
Kehrt zurück | |
---|---|
long |
Wirft | |
---|---|
ConfigurationException | |
NoDeviceException |
execBefehl
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : der zu informierende ICommandScheduler.IScheduledInvocationListener |
args | String : die Befehlsargumente |
Kehrt zurück | |
---|---|
long | Die Aufruf-ID des geplanten Befehls. |
Wirft | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Rufen Sie den entsprechenden CommandFileWatcher
für diesen Scheduler ab
Kehrt zurück | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Gibt die Anzahl der Befehle im Ausführungsstatus zurück.
Kehrt zurück | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
Kehrt zurück | |
---|---|
CommandScheduler.HostState |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Geben Sie die Informationen zu einem Aufruf zurück, indem Sie die Aufruf-ID angeben.
Parameter | |
---|---|
invocationId | int : die Tracking-ID des Aufrufs. |
Kehrt zurück | |
---|---|
String | Ein ERROR(/String) mit Informationen über den Aufruf. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Gibt den Fehlercode des zuletzt ausgeführten Aufrufs zurück. Rückgabe 0 (kein Fehler), wenn noch kein Aufruf gelaufen ist.
Kehrt zurück | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Gibt ERROR(/Throwable)
vom letzten ausgeführten Aufruf zurück. Gibt null zurück, wenn kein Throwable verfügbar ist.
Kehrt zurück | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Gibt die Anzahl der Befehle im Bereitschaftszustand in der Warteschlange zurück.
Kehrt zurück | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Kehrt 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 |
Kehrt zurück | |
---|---|
boolean |
Benachrichtigungsdateigeändert
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile | File |
extraArgs |
Alle Befehle entfernen
public void removeAllCommands ()
Entfernen Sie alle Befehle aus dem Planer
laufen
public void run ()
Der Hauptausführungsblock dieses Threads.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Stellen Sie den Client so ein, dass er Kabelbaumdaten meldet
Parameter | |
---|---|
client | ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Geben Sie true zurück, wenn wir den Scheduler bei einem Befehlsfehler herunterfahren müssen
Kehrt zurück | |
---|---|
boolean |
abschalten
public void shutdown (boolean notifyStop)
Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.
Parameter | |
---|---|
notifyStop | boolean : wenn wahr, benachrichtigt Aufrufe von TF Shutdown. |
HerunterfahrenHart
public void shutdownHard (boolean killAdb)
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren.
Ähnlich wie shutdown()
, beendet aber optional auch die adb-Verbindung, um zu versuchen, laufende Aufrufe zu „inspirieren“, schneller abzuschließen.
Parameter | |
---|---|
killAdb | boolean |
HerunterfahrenHart
public void shutdownHard ()
Versuchen Sie, den Befehlsplaner zwangsweise herunterzufahren. Dasselbe wie shutdownHard(true).
ShutdownOnEmpty
public void shutdownOnEmpty ()
Ähnlich wie shutdown()
, wartet aber stattdessen darauf, dass alle Befehle ausgeführt werden, bevor es beendet wird.
Start
public void start ()
Startet den Scheduler inkl. Einrichtung von Logging, Init von DeviceManager
etc
stopAufruf
public boolean stopInvocation (ITestInvocation invocation)
Stoppen Sie einen laufenden Aufruf.
Parameter | |
---|---|
invocation | ITestInvocation |
Kehrt zurück | |
---|---|
boolean | true, wenn der Aufruf gestoppt wurde, andernfalls false |
stopAufruf
public boolean stopInvocation (int invocationId, String cause)
Stoppen Sie einen laufenden Aufruf, indem Sie seine ID angeben.
Parameter | |
---|---|
invocationId | int : die Tracking-ID des Aufrufs. |
cause | String : die Ursache für das Stoppen des Aufrufs. |
Kehrt zurück | |
---|---|
boolean | true, wenn der Aufruf gestoppt wurde, andernfalls false |
Geschützte Methoden
Aufräumen
protected void cleanUp ()
Schließt die Protokolle und führt alle anderen notwendigen Bereinigungen durch, bevor wir beenden.
Offengelegt, damit Unit-Tests spotten können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args | String |
Kehrt zurück | |
---|---|
IConfiguration |
Wirft | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Kehrt zurück | |
---|---|
IInvocationContext |
execBefehl
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Kehrt zurück | |
---|---|
long |
Wirft | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen einer Referenz auf die IConfigurationFactory
Kehrt zurück | |
---|---|
IConfigurationFactory | die zu verwendende IConfigurationFactory |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Kehrt zurück | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Factory-Methode zum Abrufen eines Verweises auf den IDeviceManager
Kehrt zurück | |
---|---|
IDeviceManager | der zu verwendende IDeviceManager |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
Kehrt zurück | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Ruft einen IKeyStoreClient
unter Verwendung der in IGlobalConfiguration
deklarierten IKeyStoreFactory
oder null ab, wenn keine definiert ist.
Kehrt zurück | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Kehrt zurück | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Initialisiert das ddmlib-Protokoll.
Offengelegt, damit Unit-Tests spotten können.
istShutdown
protected boolean isShutdown ()
Kehrt zurück | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Kehrt zurück | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager | IDeviceManager |