Планировщик команд
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Объект | |
↳ | com.android.tradefed.command.CommandScheduler |
Планировщик для запуска команд TradeFederation на всех доступных устройствах.
Попытается расставить приоритеты команд для запуска на основе общего количества времени их выполнения. например, редкие или быстро выполняемые команды будут иметь приоритет над длительно выполняемыми командами.
Работает вечно в фоновом режиме до выключения.
Краткое содержание
Публичные конструкторы | |
---|---|
CommandScheduler () Создает |
Публичные методы | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Добавляет команду в планировщик. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Добавляет все команды из данного файла в планировщик |
void | await () Ожидает запуска планировщика, включая ожидание завершения передачи от старого TF, если это применимо. |
static TradefedDelegator | checkDelegation (String[] args) Создайте делегатор на основе командной строки, чтобы увидеть, нужно ли нам делегировать запуск. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Создайте карту состояния устройств, чтобы их можно было выпустить соответствующим образом. |
ISandbox | createSandbox () Создайте |
void | displayCommandQueue (PrintWriter printWriter) Выводить подробную отладочную информацию о состоянии очереди выполнения команд. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Вывести список текущих команд. |
void | displayInvocationsInfo (PrintWriter printWriter) Отображает список текущих вызовов. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Создайте дамп расширенного XML-файла для команды со всеми значениями |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Непосредственно выполнять команду на уже выделенных устройствах. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Напрямую выделяет устройство и выполняет команду, не добавляя ее в очередь команд, используя уже существующий |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд. |
CommandFileWatcher | getCommandFileWatcher () Получите соответствующий |
int | getExecutingCommandCount () Возвращает количество команд в состоянии выполнения. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Возвращает информацию о вызове bu с указанием идентификатора вызова. |
CommandRunner.ExitCode | getLastInvocationExitCode () Возвращает код ошибки последнего запущенного вызова. |
Throwable | getLastInvocationThrowable () Возвращает |
int | getReadyCommandCount () Возвращает количество Команд в состоянии готовности в очереди. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Возвращает true, если устройство используется активным потоком вызова. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Удалить все команды из планировщика |
void | run () Основной исполнительный блок этого потока. |
void | setClearcutClient (ClearcutClient client) Настройте клиент для передачи данных жгута проводов |
boolean | shouldShutdownOnCmdfileError () Верните true, если нам нужно выключить планировщик при ошибках команды. |
void | shutdown (boolean notifyStop) Попытка корректно завершить работу планировщика команд. |
void | shutdownHard (boolean killAdb) Попытка принудительно отключить планировщик команд. |
void | shutdownHard () Попытка принудительно отключить планировщик команд. |
void | shutdownOnEmpty () Подобно |
void | start () Запускает планировщик, включая настройку ведения журнала, инициализацию |
boolean | stopInvocation ( ITestInvocation invocation) Остановить запущенный вызов. |
boolean | stopInvocation (int invocationId, String cause) Остановите запущенный вызов, указав его идентификатор. |
Публичные конструкторы
Планировщик команд
public CommandScheduler ()
Создает CommandScheduler
.
Примечание: start необходимо вызвать перед использованием.
Публичные методы
добавитькоманду
public Pair<Boolean, Integer> addCommand (String[] args)
Добавляет команду в планировщик.
Команда, по сути, представляет собой экземпляр конфигурации для запуска и связанные с ней аргументы.
Если указан аргумент "--help", текст справки для конфигурации будет выведен на стандартный вывод. В противном случае конфиг будет добавлен в очередь на запуск.
Параметры | |
---|---|
args | String : аргументы конфигурации. |
Возвращает | |
---|---|
Pair <Boolean, Integer> | Пара значений, первое значение является логическим значением true , если команда была успешно добавлена. Второе значение — это известный идентификатор средства отслеживания команд (неотрицательное значение), если команда была успешно добавлена, верните 0, если команда добавлена для всех устройств, иначе -1. |
Броски | |
---|---|
ConfigurationException |
добавитьCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Добавляет все команды из данного файла в планировщик
Параметры | |
---|---|
cmdFilePath | String : путь файловой системы к командному файлу. |
extraArgs | ERROR(/List) аргументов ERROR(/String) для добавления к каждой команде, проанализированной из файла. Может быть пустым, но не должен быть нулевым. |
Броски | |
---|---|
ConfigurationException |
Ждите
public void await ()
Ожидает запуска планировщика, включая ожидание завершения передачи от старого TF, если это применимо.
checkДелегация
public static TradefedDelegator checkDelegation (String[] args)
Создайте делегатор на основе командной строки, чтобы увидеть, нужно ли нам делегировать запуск.
Параметры | |
---|---|
args | String |
Возвращает | |
---|---|
TradefedDelegator |
Броски | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
создатьReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Создайте карту состояния устройств, чтобы их можно было выпустить соответствующим образом.
Параметры | |
---|---|
context | IInvocationContext |
e | Throwable |
Возвращает | |
---|---|
создатьпесочницу
public ISandbox createSandbox ()
Создайте ISandbox
, который вызов будет использовать для запуска.
Возвращает | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Выводить подробную отладочную информацию о состоянии очереди выполнения команд.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Вывести список текущих команд.
Параметры | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) для вывода. |
regex | String : регулярное выражение, которому должны соответствовать команды для вывода на печать. Если null, то будут напечатаны все команды. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Отображает список текущих вызовов.
Параметры | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) для вывода. |
дампКоммандсксмл
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Создайте дамп расширенного XML-файла для команды со всеми значениями Option
, указанными для всех текущих команд.
Параметры | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) для вывода состояния. |
regex | String : регулярное выражение, с которым должны сопоставляться команды для создания дампа XML-файла. Если null, то все команды будут сброшены. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Непосредственно выполнять команду на уже выделенных устройствах.
Параметры | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener должен быть проинформирован |
reservedDevices | ERROR(/List ) ERROR(/List ) использовать |
args | String : аргументы команды |
Возвращает | |
---|---|
long | Идентификатор вызова запланированной команды. |
Броски | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Напрямую выделяет устройство и выполняет команду, не добавляя ее в очередь команд, используя уже существующий IInvocationContext
.
Параметры | |
---|---|
context | IInvocationContext : существующий IInvocationContext . |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener должен быть проинформирован |
args | String : аргументы команды |
Возвращает | |
---|---|
long |
Броски | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд.
Параметры | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener должен быть проинформирован |
args | String : аргументы команды |
Возвращает | |
---|---|
long | Идентификатор вызова запланированной команды. |
Броски | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Получите соответствующий CommandFileWatcher
для этого планировщика
Возвращает | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Возвращает количество команд в состоянии выполнения.
Возвращает | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
Возвращает | |
---|---|
CommandScheduler.HostState |
получитьInvocationInfo
public String getInvocationInfo (int invocationId)
Возвращает информацию о вызове bu с указанием идентификатора вызова.
Параметры | |
---|---|
invocationId | int : идентификатор отслеживания вызова. |
Возвращает | |
---|---|
String | ERROR(/String) , содержащий информацию о вызове. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Возвращает код ошибки последнего запущенного вызова. Возвращает 0 (нет ошибки), если вызов еще не выполнялся.
Возвращает | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Возвращает ERROR(/Throwable)
из последнего запущенного вызова. Возвращает null, если нет доступных бросков.
Возвращает | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Возвращает количество Команд в состоянии готовности в очереди.
Возвращает | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Возвращает | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Возвращает true, если устройство используется активным потоком вызова.
Параметры | |
---|---|
device | ITestDevice |
Возвращает | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Возвращает | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Параметры | |
---|---|
cmdFile | File |
extraArgs |
удалить все команды
public void removeAllCommands ()
Удалить все команды из планировщика
бегать
public void run ()
Основной исполнительный блок этого потока.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Настройте клиент для передачи данных жгута проводов
Параметры | |
---|---|
client | ClearcutClient |
следуетShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Верните true, если нам нужно выключить планировщик при ошибках команды.
Возвращает | |
---|---|
boolean |
неисправность
public void shutdown (boolean notifyStop)
Попытка корректно завершить работу планировщика команд.
Параметры | |
---|---|
notifyStop | boolean : если true, уведомляет о вызовах отключения TF. |
выключениеHard
public void shutdownHard (boolean killAdb)
Попытка принудительно отключить планировщик команд.
Аналогичен shutdown()
, но также необязательно отключает соединение adb, пытаясь «вдохновить» выполняемые вызовы на более быстрое завершение.
Параметры | |
---|---|
killAdb | boolean |
выключениеHard
public void shutdownHard ()
Попытка принудительно отключить планировщик команд. То же, что и shutdownHard(true).
выключениеOnEmpty
public void shutdownOnEmpty ()
Подобно shutdown()
, но вместо этого будет ждать выполнения всех команд перед выходом.
начинать
public void start ()
Запускает планировщик, включая настройку ведения журнала, инициализацию DeviceManager
и т. д.
стопинвокация
public boolean stopInvocation (ITestInvocation invocation)
Остановить запущенный вызов.
Параметры | |
---|---|
invocation | ITestInvocation |
Возвращает | |
---|---|
boolean | true, если вызов был остановлен, иначе false |
стопинвокация
public boolean stopInvocation (int invocationId, String cause)
Остановите запущенный вызов, указав его идентификатор.
Параметры | |
---|---|
invocationId | int : идентификатор отслеживания вызова. |
cause | String : причина остановки вызова. |
Возвращает | |
---|---|
boolean | true, если вызов был остановлен, иначе false |
Защищенные методы
очистка
protected void cleanUp ()
Закрывает журналы и выполняет любую другую необходимую очистку перед выходом.
Выставлены, чтобы модульные тесты могли издеваться.
создатьконфигурацию
protected IConfiguration createConfiguration (String[] args)
Параметры | |
---|---|
args | String |
Возвращает | |
---|---|
IConfiguration |
Броски | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Возвращает | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Параметры | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Возвращает | |
---|---|
long |
Броски | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Фабричный метод для получения ссылки на IConfigurationFactory
Возвращает | |
---|---|
IConfigurationFactory | IConfigurationFactory для использования |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Возвращает | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Фабричный метод для получения ссылки на IDeviceManager
Возвращает | |
---|---|
IDeviceManager | IDeviceManager для использования |
получитьFeatureServer
protected TradefedFeatureServer getFeatureServer ()
Возвращает | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Извлекает IKeyStoreClient
, используя IKeyStoreFactory
, объявленный в IGlobalConfiguration
, или значение null, если оно не определено.
Возвращает | |
---|---|
IKeyStoreClient | ИКейстореклиент |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Возвращает | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Инициализирует журнал ddmlib.
Выставлены, чтобы модульные тесты могли издеваться.
isShutdown
protected boolean isShutdown ()
Возвращает | |
---|---|
boolean |
процессReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Параметры | |
---|---|
manager | IDeviceManager |