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

public class CommandScheduler
extends Object implements ICommandScheduler

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


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

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

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

Резюме

Вложенные классы

enum CommandScheduler.HostState

Перечисления различного статуса хоста

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

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 ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

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

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

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

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

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

CommandFileWatcher getCommandFileWatcher ()

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

int getExecutingCommandCount ()

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

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

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

CommandRunner.ExitCode getLastInvocationExitCode ()

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

Throwable getLastInvocationThrowable ()

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

int getReadyCommandCount ()

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

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Возвращает true, если устройство используется активным потоком вызова.

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 (int invocationId, String cause)

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

boolean stopInvocation ( ITestInvocation invocation)

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

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

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
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 ()
boolean isShuttingDown ()
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) String аргументов для добавления к каждой команде, проанализированной из файла. Может быть пустым, но не должен быть нулевым.

Броски
ConfigurationException

Ждите

public void await ()

Ожидает запуска планировщика, включая ожидание завершения передачи от старого TF, если это применимо.

checkДелегация

public static TradefedDelegator checkDelegation (String[] args)

Создайте делегатор на основе командной строки, чтобы увидеть, нужно ли нам делегировать запуск.

Параметры
args String

Возвращает
TradefedDelegator

Броски
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 (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

execCommand

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

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

Параметры
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener должен быть проинформирован

device ITestDevice : ITestDevice для использования

args String : аргументы команды

Возвращает
long Идентификатор вызова запланированной команды.

Броски
ConfigurationException

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 String , содержащая информацию о вызове.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

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

Возвращает
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

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

Возвращает
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

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

Возвращает
int

getShutdownTimeout

public long getShutdownTimeout ()

Возвращает
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Возвращает true, если устройство используется активным потоком вызова.

Параметры
device ITestDevice

Возвращает
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 (int invocationId, 
                String cause)

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

Параметры
invocationId int : идентификатор отслеживания вызова.

cause String : причина остановки вызова.

Возвращает
boolean true, если вызов был остановлен, иначе false

стопинвокация

public boolean stopInvocation (ITestInvocation invocation)

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

Параметры
invocation ITestInvocation

Возвращает
boolean true, если вызов был остановлен, иначе false

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

очистка

protected void cleanUp ()

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

Выставлены, чтобы модульные тесты могли издеваться.

создатьконфигурацию

protected IConfiguration createConfiguration (String[] args)

Параметры
args String

Возвращает
IConfiguration

Броски
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Возвращает
IInvocationContext

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

isShuttingDown

protected boolean isShuttingDown ()

Возвращает
boolean

процессReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Параметры
manager IDeviceManager