Планировщик команд

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Объект
com.android.tradefed.command.CommandScheduler


Планировщик для запуска команд TradeFederation на всех доступных устройствах.

Попытается расставить приоритеты команд для запуска на основе общего количества времени их выполнения. например, редкие или быстро выполняемые команды будут иметь приоритет над длительно выполняемыми командами.

Работает вечно в фоновом режиме до выключения.

Краткое содержание

Публичные конструкторы

CommandScheduler ()

Создает 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 ()

Создайте ISandbox , который вызов будет использовать для запуска.

void displayCommandQueue (PrintWriter printWriter)

Выводить подробную отладочную информацию о состоянии очереди выполнения команд.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Вывести список текущих команд.

void displayInvocationsInfo (PrintWriter printWriter)

Отображает список текущих вызовов.

void dumpCommandsXml (PrintWriter printWriter, String regex)

Создайте дамп расширенного XML-файла для команды со всеми значениями Option , указанными для всех текущих команд.

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

Непосредственно выполнять команду на уже выделенных устройствах.

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

Напрямую выделяет устройство и выполняет команду, не добавляя ее в очередь команд, используя уже существующий IInvocationContext .

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

Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд.

CommandFileWatcher getCommandFileWatcher ()

Получите соответствующий CommandFileWatcher для этого планировщика

int getExecutingCommandCount ()

Возвращает количество команд в состоянии выполнения.

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

Возвращает информацию о вызове bu с указанием идентификатора вызова.

CommandRunner.ExitCode getLastInvocationExitCode ()

Возвращает код ошибки последнего запущенного вызова.

Throwable getLastInvocationThrowable ()

Возвращает ERROR(/Throwable) из последнего запущенного вызова.

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

Подобно shutdown() , но вместо этого будет ждать выполнения всех команд перед выходом.

void start ()

Запускает планировщик, включая настройку ведения журнала, инициализацию DeviceManager и т. д.

boolean stopInvocation ( ITestInvocation invocation)

Остановить запущенный вызов.

boolean stopInvocation (int invocationId, String cause)

Остановите запущенный вызов, указав его идентификатор.

Защищенные методы

void cleanUp ()

Закрывает журналы и выполняет любую другую необходимую очистку перед выходом.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Фабричный метод для получения ссылки на IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Фабричный метод для получения ссылки на IDeviceManager

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

Извлекает IKeyStoreClient , используя IKeyStoreFactory , объявленный в IGlobalConfiguration , или значение null, если оно не определено.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Инициализирует журнал ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

Публичные конструкторы

Планировщик команд

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 static  createReleaseMap (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

getHostOptions

protected IHostOptions getHostOptions ()

Возвращает
IHostOptions

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