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

public class CommandScheduler
extends Object implements ICommandScheduler

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


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

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

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

Резюме

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

enum CommandScheduler.HostState

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

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

CommandScheduler ()

Создает CommandScheduler .

Публичные методы

boolean addCommand (String[] args)

Добавляет команду в планировщик.

void addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs)

Добавляет все команды из данного файла в планировщик

void await ()

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

static TradefedDelegator checkDelegation (String[] args)

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

void completeHandover ()

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

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 параметров, указанными для всех текущих команд.

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

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

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

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

void execCommand ( ICommandScheduler.IScheduledInvocationListener listener, 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 ()
void handoverInitiationComplete ()

Информирует планировщик команд о том, что первоначальный хэндовер-обмен используемыми устройствами и командами завершен, и он может начать операцию планирования.

boolean handoverShutdown (int handoverPort)

Инициирует shutdown() и передачу управления другому процессу tradefed на том же хосте.

void notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs)
void removeAllCommands ()

Удалить все команды из планировщика

void run ()

Основной исполнительный блок этого потока.

void setClearcutClient (ClearcutClient client)

Настройте клиент для передачи данных жгута проводов

boolean shouldShutdownOnCmdfileError ()

Верните true, если нам нужно выключить планировщик при ошибках команды.

void shutdown ()

Попытка корректно завершить работу планировщика команд.

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

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

IDeviceManager getDeviceManager ()

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

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

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

void initLogging ()

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

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

Дождитесь завершения всех потоков вызовов.

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

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

public CommandScheduler ()

Создает CommandScheduler .

Примечание: start необходимо вызвать перед использованием.

Публичные методы

добавитькоманду

public boolean addCommand (String[] args)

Добавляет команду в планировщик.

Команда, по сути, представляет собой экземпляр конфигурации для запуска и связанные с ней аргументы.

Если указан аргумент "--help", текст справки для конфигурации будет выведен на стандартный вывод. В противном случае конфиг будет добавлен в очередь на выполнение.

Параметры
args String : аргументы конфигурации.

Возвращает
boolean true , если команда была успешно добавлена

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

полная передача

public void completeHandover ()

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

создать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 void execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

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

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

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

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

Броски
ConfigurationException

execCommand

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

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

Параметры
context IInvocationContext : существующий IInvocationContext .

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

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

Броски
ConfigurationException
NoDeviceException

execCommand

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

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

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

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

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

handoverInitiationComplete

public void handoverInitiationComplete ()

Информирует планировщик команд о том, что первоначальный хэндовер-обмен используемыми устройствами и командами завершен, и он может начать операцию планирования.

хендоверзакрытие

public boolean handoverShutdown (int handoverPort)

Инициирует shutdown() и передачу управления другому процессу tradefed на том же хосте.

Планировщик сообщит удаленному процессу tradefed, прослушивающему этот порт, об освобожденных устройствах, как только они станут доступными.

Параметры
handoverPort int

Возвращает
boolean true , если инициация хендовера прошла успешно, иначе false

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

Попытка корректно завершить работу планировщика команд.

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

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

выключение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

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

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

Возвращает
IConfigurationFactory IConfigurationFactory для использования

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 ИКейстореклиент

initLogging

protected void initLogging ()

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

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

isShutdown

protected boolean isShutdown ()

Возвращает
boolean

isShuttingDown

protected boolean isShuttingDown ()

Возвращает
boolean

процессReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Параметры
manager IDeviceManager

ждатьForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Дождитесь завершения всех потоков вызовов.