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, die auszuführenden Befehle basierend auf der Gesamtausführungszahl ihrer Ausführungszeit zu priorisieren. Beispielsweise erhalten selten oder schnell laufende Befehle Vorrang vor lang laufenden Befehlen.
Läuft dauerhaft im Hintergrund, bis es heruntergefahren wird.
Zusammenfassung
Öffentliche Bauträger | |
---|---|
CommandScheduler () Erstellt einen |
Öffentliche Methoden | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Fügt dem Scheduler einen Befehl hinzu. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Fügt alle Befehle aus der angegebenen Datei zum Scheduler hinzu |
void | await () Wartet darauf, dass der Scheduler mit der Ausführung beginnt, einschließlich gegebenenfalls auf den Abschluss der Übergabe vom alten TF. |
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 diese entsprechend freigegeben werden kann. |
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) Erstellen Sie einen Dump der erweiterten XML-Datei für den Befehl mit allen für alle aktuellen Befehle angegebenen |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Führen Sie den Befehl 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 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 ihn zur Befehlswarteschlange hinzuzufügen. |
CommandFileWatcher | getCommandFileWatcher () Holen Sie sich den entsprechenden CommandFileWatcher für diesen Scheduler |
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-BU zurück und gibt dabei die Aufruf-ID an. |
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 Bereitschaftszustand 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, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Entfernen Sie alle Befehle aus dem Scheduler |
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 aufgrund eines Befehlsfehlers 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, einschließlich der Einrichtung der Protokollierung, der Initialisierung des |
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 Bauträger
CommandScheduler
public CommandScheduler ()
Erstellt einen 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 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 Befehls-Tracker-ID (nicht negativer Wert). Wenn der Befehl erfolgreich hinzugefügt wurde, wird 0 zurückgegeben, wenn der Befehl für alle Geräte hinzugefügt wurde, andernfalls -1. |
Würfe | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Fügt alle Befehle aus der angegebenen Datei zum Scheduler hinzu
Parameter | |
---|---|
cmdFilePath | String : der Dateisystempfad der Befehlsdatei |
extraArgs | ERROR(/List) von String Argumenten, die an jeden aus der Datei analysierten Befehl angehängt werden sollen. Kann leer sein, sollte aber nicht null sein. |
Würfe | |
---|---|
ConfigurationException |
erwarten
public void await ()
Wartet darauf, dass der Scheduler mit der Ausführung beginnt, einschließlich gegebenenfalls auf den Abschluss der Übergabe vom alten TF.
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 |
Würfe | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Erstellen Sie eine Karte des Gerätestatus, damit diese entsprechend freigegeben werden kann.
Parameter | |
---|---|
context | IInvocationContext |
e | Throwable |
Kehrt zurück | |
---|---|
createSandbox
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) , an den ausgegeben werden soll. |
regex | String : der reguläre Ausdruck, dem Befehle zugeordnet werden müssen, damit sie gedruckt 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) , an den ausgegeben werden soll. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Erstellen Sie einen Dump der erweiterten XML-Datei für den Befehl mit allen für alle aktuellen Befehle angegebenen Option
.
Parameter | |
---|---|
printWriter | PrintWriter : der ERROR(/PrintWriter) , an den der Status ausgegeben werden soll. |
regex | String : der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollten, damit die XML-Datei ausgegeben wird. Wenn null, werden alle Befehle ausgegeben. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Führen Sie den Befehl direkt auf bereits zugewiesenen Geräten aus.
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. |
Würfe | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Ordnet 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 |
Würfe | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Weist ein Gerät direkt zu und führt einen Befehl aus, ohne ihn zur 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. |
Würfe | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Holen Sie sich den entsprechenden CommandFileWatcher für diesen Scheduler
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)
Gibt die Informationen zu einem Aufruf-BU zurück und gibt dabei die Aufruf-ID an.
Parameter | |
---|---|
invocationId | int : die Tracking-ID des Aufrufs. |
Kehrt zurück | |
---|---|
String | Ein String , der Informationen zum Aufruf enthält. |
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.
Kehrt zurück | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Gibt das 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 Aufrufthread verwendet wird.
Parameter | |
---|---|
device | ITestDevice |
Kehrt zurück | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Kehrt zurück | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile | File |
extraArgs |
RemoveAllCommands
public void removeAllCommands ()
Entfernen Sie alle Befehle aus dem Scheduler
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 aufgrund eines Befehlsfehlers herunterfahren müssen
Kehrt zurück | |
---|---|
boolean |
abschalten
public void shutdown (boolean notifyStop)
Versuchen Sie, den Befehlsplaner 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()
, beendet aber optional auch die ADB-Verbindung, um laufende Aufrufe zu „inspirieren“, damit sie schneller abgeschlossen werden.
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 jedoch vor dem Beenden auf die Ausführung aller Befehle.
Start
public void start ()
Startet den Scheduler, einschließlich der Einrichtung der Protokollierung, der Initialisierung des DeviceManager
usw
stopInvocation
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 |
stopInvocation
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 : Der Grund 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 erforderlichen Bereinigungen durch, bevor wir den Vorgang beenden.
Offengelegt, damit Unit-Tests verspotten können.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args | String |
Kehrt zurück | |
---|---|
IConfiguration |
Würfe | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Kehrt zurück | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Kehrt zurück | |
---|---|
long |
Würfe | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Factory-Methode zum Abrufen eines Verweises 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
mithilfe 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 verspotten können.
isShutdown
protected boolean isShutdown ()
Kehrt zurück | |
---|---|
boolean |
ProcessReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager | IDeviceManager |