Командный планировщик
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Объект | |
↳ | com.android.tradefed.command.CommandScheduler |
Планировщик для запуска команд TradeFederation на всех доступных устройствах.
Попытается определить приоритетность выполнения команд на основе общего количества выполнений за время их выполнения. например, редко выполняющиеся или быстро выполняемые команды будут иметь приоритет над длительно выполняемыми командами. Работает вечно в фоновом режиме до выключения.Краткое содержание
Вложенные классы | |
---|---|
enum | CommandScheduler.HostState Перечисления разного статуса хоста |
Общественные конструкторы | |
---|---|
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 () Создайте |
void | displayCommandQueue (PrintWriter printWriter) Вывод подробной отладочной информации о состоянии очереди выполнения команд. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Выведите список текущих команд. |
void | displayInvocationsInfo (PrintWriter printWriter) Отображает список текущих вызовов. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Дамп расширенного XML-файла для команды со всеми значениями |
void | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args) Непосредственно выполнить команду на уже выделенном устройстве. |
void | execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд, используя уже существующий |
void | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд. |
CommandFileWatcher | getCommandFileWatcher () Получите соответствующий |
int | getExecutingCommandCount () Возвращает количество команд в состоянии выполнения. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Возвращает информацию о вызове, указав идентификатор вызова. |
CommandRunner.ExitCode | getLastInvocationExitCode () Верните код ошибки последнего выполненного вызова. |
Throwable | getLastInvocationThrowable () Верните |
int | getReadyCommandCount () Возвращает количество команд в состоянии готовности в очереди. |
long | getShutdownTimeout () |
void | handoverInitiationComplete () Сообщает планировщику команд о том, что первоначальный обмен хэндовером используемых устройств и команд завершен, и он может начать планирование операции. |
boolean | handoverShutdown (int handoverPort) Инициирует |
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 () Аналогично |
void | start () Запускает планировщик, включая настройку ведения журнала, инициализацию |
boolean | stopInvocation ( ITestInvocation invocation) Остановить текущий вызов. |
boolean | stopInvocation (int invocationId, String cause) Остановите текущий вызов, указав его идентификатор. |
Защищенные методы | |
---|---|
void | cleanUp () Закрывает журналы и выполняет любую другую необходимую очистку перед завершением работы. |
IConfiguration | createConfiguration (String[] args) |
IInvocationContext | createInvocationContext () |
IConfigurationFactory | getConfigFactory () Фабричный метод для получения ссылки на |
IDeviceManager | getDeviceManager () Фабричный метод для получения ссылки на |
TradefedFeatureServer | getFeatureServer () |
IHostOptions | getHostOptions () |
IKeyStoreClient | getKeyStoreClient () Извлекает |
void | initLogging () Инициализирует журнал ddmlib. |
boolean | isShutdown () |
boolean | isShuttingDown () |
void | processReadyCommands ( IDeviceManager manager) |
void | waitForAllInvocationThreads () Подождите, пока все потоки вызова завершатся. |
Общественные конструкторы
Командный планировщик
public CommandScheduler ()
Создает CommandScheduler
.
Публичные методы
добавитькоманду
public boolean addCommand (String[] args)
Добавляет команду в планировщик.
По сути, команда представляет собой экземпляр запускаемой конфигурации и связанных с ней аргументов. Если указан аргумент «--help», текст справки для конфигурации будет выведен на стандартный вывод. В противном случае конфигурация будет добавлена в очередь на запуск.Параметры | |
---|---|
args | String : аргументы конфигурации. |
Возврат | |
---|---|
boolean | true , если команда была добавлена успешно |
Броски | |
---|---|
ConfigurationException |
добавитькомандный файл
public void addCommandFile (String cmdFilePath,extraArgs)
Добавляет все команды из данного файла в планировщик.
Параметры | |
---|---|
cmdFilePath | String : путь к файловой системе командного файла. |
extraArgs | ERROR(/List) String аргументов, добавляемая к каждой команде, анализируемой из файла. Может быть пустым, но не должно быть нулевым. |
Броски | |
---|---|
ConfigurationException |
ждать
public void await ()
Ожидает запуска планировщика, включая ожидание завершения передачи от старого TF, если это применимо.
проверкаДелегирование
public static TradefedDelegator checkDelegation (String[] args)
Создайте делегатора на основе командной строки, чтобы увидеть, нужно ли нам делегировать выполнение.
Параметры | |
---|---|
args | String |
Возврат | |
---|---|
TradefedDelegator |
Броски | |
---|---|
ConfigurationException |
полная передача
public void completeHandover ()
Сообщает планировщику команд о том, что инициированная последовательность передачи обслуживания полностью завершена, и ему следует повторно инициализировать свой удаленный менеджер на порту по умолчанию.
Создать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 : регулярное выражение, которому должны соответствовать команды для печати. Если значение равно нулю, то будут напечатаны все команды. |
displayInvocatsInfo
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-файла. Если значение равно нулю, все команды будут сброшены. |
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 |
getInvoctionInfo
public String getInvocationInfo (int invocationId)
Возвращает информацию о вызове, указав идентификатор вызова.
Параметры | |
---|---|
invocationId | int : идентификатор отслеживания вызова. |
Возврат | |
---|---|
String | String , содержащая информацию о вызове. |
getLastInvoctionExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Верните код ошибки последнего выполненного вызова. Верните 0 (нет ошибок), если ни один вызов еще не выполнялся.
Возврат | |
---|---|
CommandRunner.ExitCode |
getLastInvoctionThrowable
public Throwable getLastInvocationThrowable ()
Верните Throwable
из последнего выполненного вызова. Верните ноль, если метаданных нет.
Возврат | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Возвращает количество команд в состоянии готовности в очереди.
Возврат | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Возврат | |
---|---|
long |
передача обслуживанияИнициацияЗавершение
public void handoverInitiationComplete ()
Сообщает планировщику команд о том, что первоначальный обмен хэндовером используемых устройств и команд завершен, и он может начать планирование операции.
ПередачаВыключение
public boolean handoverShutdown (int handoverPort)
Инициирует shutdown()
и передачу другому процессу с обменом на этом же хосте.
Параметры | |
---|---|
handoverPort | int |
Возврат | |
---|---|
boolean | true , если инициация передачи обслуживания прошла успешно, в противном случае false |
уведомитьфилечанжед
public void notifyFileChanged (File cmdFile,extraArgs)
Параметры | |
---|---|
cmdFile | File |
extraArgs |
удалить все команды
public void removeAllCommands ()
Удалить все команды из планировщика
бегать
public void run ()
Основной блок выполнения этого потока.
SetClearcutClient
public void setClearcutClient (ClearcutClient client)
Настройте клиент на отправку данных о жгутах
Параметры | |
---|---|
client | ClearcutClient |
долженШутдаунОнкмдфилееррор
public boolean shouldShutdownOnCmdfileError ()
Верните true, если нам нужно выключить планировщик из-за ошибки команды.
Возврат | |
---|---|
boolean |
неисправность
public void shutdown ()
Попытайтесь корректно завершить работу планировщика команд.
Очищает команды, ожидающие проверки, и запрашивает корректное завершение всех выполняемых вызовов. После вызова завершения работы основной цикл планировщика будет ждать завершения всех текущих вызовов, прежде чем полностью выйти.выключениеHard
public void shutdownHard (boolean killAdb)
Попытайтесь принудительно завершить работу планировщика команд.
Аналогично shutdown()
, но также при необходимости разрывает соединение adb, пытаясь «побудить» выполняемые вызовы завершиться быстрее.
Параметры | |
---|---|
killAdb | boolean |
выключениеHard
public void shutdownHard ()
Попытайтесь принудительно завершить работу планировщика команд. То же, что и ShutdownHard(true).
ShutdownOnEmpty
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 |
createInvoctionContext
protected IInvocationContext createInvocationContext ()
Возврат | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Фабричный метод для получения ссылки на IConfigurationFactory
Возврат | |
---|---|
IConfigurationFactory | IConfigurationFactory для использования |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Фабричный метод для получения ссылки на IDeviceManager
Возврат | |
---|---|
IDeviceManager | IDeviceManager для использования |
getHostOptions
protected IHostOptions getHostOptions ()
Возврат | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Извлекает IKeyStoreClient
с помощью IKeyStoreFactory
, объявленного в IGlobalConfiguration
, или значения NULL, если ничего не определено.
Возврат | |
---|---|
IKeyStoreClient | IKeyStoreКлиент |
initLogging
protected void initLogging ()
Инициализирует журнал ddmlib.
Открыто, чтобы модульные тесты могли имитировать.
isShutdown
protected boolean isShutdown ()
Возврат | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Возврат | |
---|---|
boolean |
процессReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Параметры | |
---|---|
manager | IDeviceManager |
waitForAllInvoctionThreads
protected void waitForAllInvocationThreads ()
Подождите, пока все потоки вызова завершатся.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-01-08 UTC.