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

Verschachtelte Klassen

enum CommandScheduler.HostState

Aufzählungen mit unterschiedlichem Status des Hosts

Öffentliche Konstruktoren

CommandScheduler()

Erstellt ein CommandScheduler.

Öffentliche Methoden

boolean addCommand(String[] args)

Fügt dem Planer einen Befehl hinzu.

void addCommandFile(String cmdFilePath, extraArgs)

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.

void completeHandover()

Informiert den Befehlsplaner, dass eine initiierte Handover-Sequenz vollständig abgeschlossen ist, und sollte seinen Remote Manager am Standardport neu initialisieren.

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 ISandbox, das der Aufruf zum Ausführen verwendet.

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 Option-Werte, die für alle aktuellen Befehle angegeben wurden.

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)

Ordnet ein Gerät direkt zu und führt einen Befehl aus, ohne es der Befehlswarteschlange hinzuzufügen mit einer bereits vorhandenen IInvocationContext.

void 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()

Entsprechenden 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 Throwable des letzten ausgeführten Aufrufs zurück.

int getReadyCommandCount()

Gibt die Anzahl der Befehle im Status „Bereit“ in der Warteschlange zurück.

long getShutdownTimeout()
void handoverInitiationComplete()

Informiert den Befehlsplaner über den ersten Handover-Austausch der verwendeten Geräte und Befehle abgeschlossen ist und mit der Planung beginnen kann.

boolean handoverShutdown(int handoverPort)

Initiiert ein shutdown() und eine Übergabe an einen anderen Tradef-Prozess auf demselben Host.

void notifyFileChanged(File cmdFile, extraArgs)
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()

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 „shutdown()“, wird aber darauf gewartet, dass alle Befehle ausgeführt wurden bevor Sie die Seite verlassen.

void start()

Startet den Planer, einschließlich Einrichten von Logging, Initialisierung von DeviceManager usw.

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.

Geschützte Methoden

void cleanUp()

Schließt die Protokolle und führt alle anderen erforderlichen Bereinigungen durch, bevor wir den Vorgang beenden.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
IConfigurationFactory getConfigFactory()

Factory-Methode zum Abrufen eines Verweises auf IConfigurationFactory

IDeviceManager getDeviceManager()

Factory-Methode zum Abrufen eines Verweises auf IDeviceManager

TradefedFeatureServer getFeatureServer()
IHostOptions getHostOptions()
IKeyStoreClient getKeyStoreClient()

Ruft ein IKeyStoreClient-Objekt mithilfe von IKeyStoreFactory ab deklariert in IGlobalConfiguration oder null, wenn kein Wert definiert ist.

void initLogging()

Initialisiert das ddmlib-Log.

boolean isShutdown()
boolean isShuttingDown()
void processReadyCommands(IDeviceManager manager)
void waitForAllInvocationThreads()

Warten Sie, bis alle Aufruf-Threads abgeschlossen sind.

Öffentliche Konstruktoren

CommandScheduler

public CommandScheduler ()

Erstellt ein CommandScheduler.

Hinweis: start muss vor der Verwendung aufgerufen werden.

Öffentliche Methoden

Befehl hinzufügen

public boolean 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 "--help" Argument ist der Hilfetext für wird die Konfiguration in stdout ausgegeben. Andernfalls wird die Konfiguration zur Warteschlange hinzugefügt, ausführen.

Parameter
args String: die Konfigurationsargumente

Returns
boolean true, wenn der Befehl hinzugefügt wurde

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
ConfigurationException

vollständige Übergabe

public void completeHandover ()

Informiert den Befehlsplaner, dass eine initiierte Handover-Sequenz vollständig abgeschlossen ist, und sollte seinen Remote Manager am Standardport neu initialisieren.

createReleaseMap-

public static  createReleaseMap (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 Warteschlange für die Befehlsausführung 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 void execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Befehl direkt auf einem bereits zugewiesenen Gerät ausführen.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: die zu informierenden ICommandScheduler.IScheduledInvocationListener

device ITestDevice: die zu verwendende ITestDevice

args String: die Befehlsargumente

Ausgabe
ConfigurationException

Befehl ausführen

public void 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

Ausgabe
ConfigurationException
NoDeviceException

Befehl ausführen

public void 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

Ausgabe
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Entsprechenden CommandFileWatcher für diesen Planer abrufen

Returns
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Gibt die Anzahl der Befehle im Ausführungsstatus zurück.

Returns
int

getHostState

public CommandScheduler.HostState getHostState ()

Returns
CommandScheduler.HostState

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

HandoverInitiationAbgeschlossen

public void handoverInitiationComplete ()

Informiert den Befehlsplaner über den ersten Handover-Austausch der verwendeten Geräte und Befehle abgeschlossen ist und mit der Planung beginnen kann.

handoverHerunterfahren

public boolean handoverShutdown (int handoverPort)

Initiiert ein shutdown() und eine Übergabe an einen anderen Tradef-Prozess auf demselben Host.

Der Planer informiert den Remote-Tradef-Prozess, der diesen Port der freigegebenen Geräte überwacht. sobald sie verfügbar sind.

Parameter
handoverPort int

Returns
boolean true, wenn die Handover-Initiierung erfolgreich war, false sonst

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 ()

Versuchen Sie, den Befehlsplaner ordnungsgemäß herunterzufahren.

Löscht Befehle, die zum Testen warten, und fordert an, dass alle Aufrufe ausgeführt werden nicht ordnungsgemäß herunterfahren.

Nach dem Herunterfahren wartet die Planer-Hauptschleife auf alle laufenden Aufrufe. bevor Sie den Vorgang beenden.

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“

Geschützte Methoden

CleanUp

protected void cleanUp ()

Schließt die Protokolle 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

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Factory-Methode zum Abrufen eines Verweises auf IConfigurationFactory

Returns
IConfigurationFactory das zu verwendende IConfigurationFactory

getDeviceManager

protected IDeviceManager getDeviceManager ()

Factory-Methode zum Abrufen eines Verweises auf IDeviceManager

Returns
IDeviceManager das zu verwendende IDeviceManager

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Returns
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Returns
IHostOptions

GetKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Ruft ein IKeyStoreClient-Objekt mithilfe von IKeyStoreFactory ab deklariert in IGlobalConfiguration oder null, wenn kein Wert definiert ist.

Returns
IKeyStoreClient IKeyStoreClient

initLogging

protected void initLogging ()

Initialisiert das ddmlib-Log.

Wird ausgesetzt, damit Einheitentests Simulationen können.

isHerunterfahren

protected boolean isShutdown ()

Returns
boolean

isHerunterfahrenTDown

protected boolean isShuttingDown ()

Returns
boolean

ProcessReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager

WaitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Warten Sie, bis alle Aufruf-Threads abgeschlossen sind.