CommandScheduler

public class CommandScheduler
extends Thread implements ICommandScheduler

java.lang.Object
   ↳ java.lang.Thread
     ↳ 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 ihrer Ausführungszeit zu priorisieren. Seltene oder schnell ausgeführte Befehle werden beispielsweise gegenüber Befehlen mit langer Ausführungszeit priorisiert.

Wird im Hintergrund bis zum Herunterfahren ausgeführt.

Zusammenfassung

Öffentliche Konstruktoren

CommandScheduler()

Erstellt ein CommandScheduler.

Öffentliche Methoden

Pair<Boolean, Integer> addCommand(String[] args)

Fügt dem Scheduler einen Befehl hinzu.

void addCommandFile(String cmdFilePath, List<String> extraArgs)

Fügt alle Befehle aus der angegebenen Datei dem Scheduler hinzu

void await()

Wartet, bis der Planer mit der Ausführung beginnt, einschließlich des Wartens auf die Übergabe vom alten TF, falls zutreffend.

static TradefedDelegator checkDelegation(String[] args)

Erstellen Sie einen Delegator über die Befehlszeile, um zu prüfen, ob der Lauf delegiert werden muss.

static Map<ITestDeviceFreeDeviceState> createReleaseMap(IInvocationContext context, Throwable e)

Erstelle eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können.

ISandbox createSandbox()

Erstellen Sie ein ISandbox, das für die Ausführung des Aufrufs verwendet wird.

void displayCommandQueue(PrintWriter printWriter)

Gibt detaillierte Debugging-Informationen zum Status der Befehlsausführungswarteschlange aus.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Eine Liste der aktuellen Befehle ausgeben.

void displayInvocationsInfo(PrintWriter printWriter)

Zeigt eine Liste der aktuellen Aufrufe an.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Geben Sie die erweiterte XML-Datei für den Befehl mit allen Option-Werten aus, die für alle aktuellen Befehle angegeben sind.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Befehl direkt auf einem bereits zugewiesenen Gerät 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 mit einem bereits vorhandenen IInvocationContext der Befehlswarteschlange hinzuzufügen.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Weist einem Gerät direkt ein Gerät zu und führt einen Befehl aus, ohne ihn der Befehlswarteschlange hinzuzufügen.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)

Befehle direkt auf bereits zugewiesenen Geräten ausführen

CommandFileWatcher getCommandFileWatcher()

Den entsprechenden CommandFileWatcher für diesen Scheduler abrufen

int getExecutingCommandCount()

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

CommandScheduler.HostState getHostState()
String getInvocationInfo(int invocationId)

Gibt Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird.

CommandRunner.ExitCode getLastInvocationExitCode()

Gibt den Fehlercode des letzten Aufrufs zurück, der ausgeführt wurde.

Throwable getLastInvocationThrowable()

Gibt den Throwable des letzten Aufrufs zurück.

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 Aufruf-Thread verwendet wird.

boolean isShuttingDown()
void notifyFileChanged(File cmdFile, List<String> extraArgs)
void removeAllCommands()

Alle Befehle aus dem Scheduler entfernen

void run()

Der Hauptausführungsblock dieses Threads.

void setClearcutClient(ClearcutClient client)

Client für die Meldung von Harness-Daten festlegen

void setMaxPollTime(long polling)
void setPrintSchedulingWarning(boolean print)
boolean shouldShutdownOnCmdfileError()

Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss.

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 shutdown(), aber es wird gewartet, bis alle Befehle ausgeführt wurden, bevor das Programm beendet wird.

void start()

Startet den Scheduler, einschließlich der Einrichtung des Loggings, der Initialisierung von DeviceManager usw.

boolean stopInvocation(ITestInvocation invocation)

Laufenden Aufruf beenden

boolean stopInvocation(int invocationId, String cause)

Sie können einen laufenden Aufruf beenden, indem Sie seine ID angeben.

void stopScheduling()

Das Planen und Akzeptieren neuer Tests wird beendet, Tradefed wird jedoch nicht beendet.

Geschützte Methoden

void cleanUp()

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

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
void dryRunCommandReporting(ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Ermittelt, ob ein bestimmter Befehl ein Probelauf ist.

long execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
IConfigurationFactory getConfigFactory()

Factory-Methode zum Abrufen einer Referenz für IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Factory-Methode zum Abrufen einer Referenz für IDeviceManager

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

Ruft ein IKeyStoreClient mit dem in ERROR(/IGlobalConfiguration) deklarierten IKeyStoreFactory ab oder „null“, wenn keines definiert ist.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Initialisiert das ddmlib-Log.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)
boolean shouldMarkReleased()

Öffentliche Konstruktoren

CommandScheduler

public CommandScheduler ()

Erstellt ein 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 Grunde eine Instanz einer Konfiguration, die ausgeführt werden soll, und die zugehörigen Argumente.

Wenn das Argument „--help“ angegeben ist, wird der Hilfetext für die Konfiguration in stdout ausgegeben. Andernfalls wird die Konfiguration der Warteschlange hinzugefügt.

Parameter
args String: die Konfigurationsargumente.

Gibt Folgendes zurück:
Pair<Boolean, Integer> Ein Wertepaar. Der erste Wert ist ein boolescher Wert true, wenn der Befehl erfolgreich hinzugefügt wurde. Der zweite Wert ist die ID des bekannten Befehls-Trackers(nicht negativer Wert), wenn der Befehl erfolgreich hinzugefügt wurde. Wenn der Befehl für alle Geräte hinzugefügt wird, wird 0 zurückgegeben, andernfalls -1.

Löst aus
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                List<String> extraArgs)

Fügt alle Befehle aus der angegebenen Datei dem Scheduler hinzu

Parameter
cmdFilePath String: der Dateisystempfad der Befehlsdatei

extraArgs List: Eine List mit String-Argumenten, die an jeden aus der Datei geparsten Befehl angehängt werden sollen. Kann leer sein, darf aber nicht null sein.

Löst aus
ConfigurationException

await

public void await ()

Wartet, bis der Planer mit der Ausführung beginnt, einschließlich des Wartens auf die Übergabe vom alten TF, falls zutreffend.

Löst aus
InterruptedException

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Erstellen Sie einen Delegator über die Befehlszeile, um zu prüfen, ob der Lauf delegiert werden muss.

Parameter
args String

Gibt Folgendes zurück:
TradefedDelegator

Löst aus
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static Map<ITestDeviceFreeDeviceState> createReleaseMap (IInvocationContext context, 
                Throwable e)

Erstelle eine Karte des Gerätestatus, damit sie entsprechend freigegeben werden können.

Parameter
context IInvocationContext

e Throwable

Gibt Folgendes zurück:
Map<ITestDeviceFreeDeviceState>

createSandbox

public ISandbox createSandbox ()

Erstellen Sie ein ISandbox, das für die Ausführung des Aufrufs verwendet wird.

Gibt Folgendes zurück:
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Gibt detaillierte Debugging-Informationen zum Status der Befehlsausführungswarteschlange aus.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Eine Liste der aktuellen Befehle ausgeben.

Parameter
printWriter PrintWriter: Die PrintWriter, in die die Ausgabe geschrieben werden soll.

regex String: Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit sie ausgegeben werden. Wenn „null“, werden alle Befehle ausgegeben.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Zeigt eine Liste der aktuellen Aufrufe an.

Parameter
printWriter PrintWriter: Die PrintWriter, in die die Ausgabe geschrieben werden soll.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Geben Sie die erweiterte XML-Datei für den Befehl mit allen Option-Werten aus, die für alle aktuellen Befehle angegeben sind.

Parameter
printWriter PrintWriter: Der PrintWriter, in den der Status ausgegeben werden soll.

regex String: Der reguläre Ausdruck, mit dem Befehle abgeglichen werden sollen, damit die XML-Datei ausgegeben wird. Wenn null, werden alle Befehle ausgegeben.

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

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

Parameter
listener ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll

device ITestDevice: die zu verwendende ITestDevice

args String: die Befehlsargumente

Gibt Folgendes zurück:
long Die Aufruf-ID des geplanten Befehls.

Löst aus
ConfigurationException

execCommand

public long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

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

Parameter
context IInvocationContext: ein vorhandenes IInvocationContext.

listener ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll

args String: die Befehlsargumente

Gibt Folgendes zurück:
long

Löst aus
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

Weist einem Gerät direkt ein Gerät zu und führt einen Befehl aus, ohne ihn der Befehlswarteschlange hinzuzufügen.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll

args String: die Befehlsargumente

Gibt Folgendes zurück:
long Die Aufruf-ID des geplanten Befehls.

Löst aus
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                List<ITestDevice> reservedDevices, 
                String[] args)

Befehle direkt auf bereits zugewiesenen Geräten ausführen

Parameter
listener ICommandScheduler.IScheduledInvocationListener: der ICommandScheduler.IScheduledInvocationListener, der benachrichtigt werden soll

reservedDevices List: die zu verwendende ERROR(/List)

args String: die Befehlsargumente

Gibt Folgendes zurück:
long Die Aufruf-ID des geplanten Befehls.

Löst aus
ConfigurationException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Den entsprechenden CommandFileWatcher für diesen Scheduler abrufen

Gibt Folgendes zurück:
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

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

Gibt Folgendes zurück:
int

getHostState

public CommandScheduler.HostState getHostState ()

Gibt Folgendes zurück:
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Gibt Informationen zu einem Aufruf zurück, indem die Aufruf-ID angegeben wird.

Parameter
invocationId int: die Tracking-ID des Aufrufs.

Gibt Folgendes zurück:
String Ein String mit Informationen zum Aufruf.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Gibt den Fehlercode des letzten Aufrufs zurück, der ausgeführt wurde. Gibt 0 (kein Fehler) zurück, wenn noch kein Aufruf ausgeführt wurde.

Gibt Folgendes zurück:
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Gibt den Throwable des letzten Aufrufs zurück. Gibt „null“ zurück, wenn kein auslösbarer Fehler verfügbar ist.

Gibt Folgendes zurück:
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

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

Gibt Folgendes zurück:
int

getShutdownTimeout

public long getShutdownTimeout ()

Gibt Folgendes 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

Gibt Folgendes zurück:
boolean

isShuttingDown

public boolean isShuttingDown ()

Gibt Folgendes zurück:
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                List<String> extraArgs)

Parameter
cmdFile File

extraArgs List

removeAllCommands

public void removeAllCommands ()

Alle Befehle aus dem Scheduler entfernen

run

public void run ()

Der Hauptausführungsblock dieses Threads.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Client für die Meldung von Harness-Daten festlegen

Parameter
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parameter
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parameter
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Gibt „true“ zurück, wenn der Scheduler bei einem Befehlsfehler heruntergefahren werden muss.

Gibt Folgendes zurück:
boolean

shutdown

public void shutdown (boolean notifyStop)

Versuchen Sie, den Befehls-Scheduler 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(), aber die ADB-Verbindung wird optional auch beendet, um laufende Aufrufe schneller abzuschließen.

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 aber, bis alle Befehle ausgeführt wurden, bevor es beendet wird.

Wenn sich Befehle im Schleifenmodus befinden, wird der Scheduler nie beendet.

start

public void start ()

Startet den Scheduler, einschließlich der Einrichtung des Loggings, der Initialisierung von DeviceManager usw.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Laufenden Aufruf beenden

Parameter
invocation ITestInvocation

Gibt Folgendes zurück:
boolean „true“, wenn der Aufruf beendet wurde, andernfalls „false“

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Sie können einen laufenden Aufruf beenden, indem Sie seine ID angeben.

Parameter
invocationId int: die Tracking-ID des Aufrufs.

cause String: Der Grund für das Beenden des Aufrufs.

Gibt Folgendes zurück:
boolean „true“, wenn der Aufruf beendet wurde, andernfalls „false“

stopScheduling

public void stopScheduling ()

Das Planen und Akzeptieren neuer Tests wird beendet, Tradefed wird jedoch nicht beendet. Dadurch soll ein zweistufiges Herunterfahren ermöglicht werden, bei dem zuerst alle laufenden Tests beendet und dann der Tradefed-Prozess beendet wird.

Geschützte Methoden

cleanUp

protected void cleanUp ()

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

Wird bereitgestellt, damit Einheitentests simuliert werden können.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Gibt Folgendes zurück:
IConfiguration

Löst aus
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Gibt Folgendes zurück:
IInvocationContext

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Ermittelt, ob ein bestimmter Befehl ein Probelauf ist. Wenn es sich bei dem Befehl um einen Probelauf handelt, validieren Sie ihn. Wenn es Probleme mit der Konfiguration gibt, wird eine ConfigurationException ausgelöst.

Parameter
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) zum Melden von Ereignissen für die Dry-Run-Validierung.

config IConfiguration

Gibt Folgendes zurück:
void „true“, wenn der Befehl ein Probelauf ist, andernfalls „false“.

Löst aus
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

protected long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                List<ITestDevice> reservedDevices, 
                String[] args)

Parameter
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices List

args String

Gibt Folgendes zurück:
long

Löst aus
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Factory-Methode zum Abrufen einer Referenz für IConfigurationFactory

Gibt Folgendes zurück:
IConfigurationFactory Der zu verwendende IConfigurationFactory

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Gibt Folgendes zurück:
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Factory-Methode zum Abrufen einer Referenz für IDeviceManager

Gibt Folgendes zurück:
IDeviceManager Der zu verwendende IDeviceManager

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Gibt Folgendes zurück:
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Gibt Folgendes zurück:
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Ruft ein IKeyStoreClient mit dem in ERROR(/IGlobalConfiguration) deklarierten IKeyStoreFactory ab oder „null“, wenn keines definiert ist.

Gibt Folgendes zurück:
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Gibt Folgendes zurück:
TestInvocationManagementServer

initLogging

protected void initLogging ()

Initialisiert das ddmlib-Log.

Wird bereitgestellt, damit Einheitentests simuliert werden können.

isShutdown

protected boolean isShutdown ()

Gibt Folgendes zurück:
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager

shouldMarkReleased

protected boolean shouldMarkReleased ()

Gibt Folgendes zurück:
boolean