CommandScheduler
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Um agendador para executar comandos TradeFederation em todos os dispositivos disponíveis.
Tentará priorizar comandos a serem executados com base em uma contagem total de execução de seu tempo de execução. por exemplo, comandos de execução rápida ou pouco frequentes serão priorizados em relação a comandos de execução longa.
Funciona para sempre em segundo plano até o desligamento.
Resumo
Construtores públicos | |
---|---|
CommandScheduler () Cria um |
Métodos públicos | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Adiciona um comando ao agendador. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Adiciona todos os comandos de determinado arquivo ao agendador |
void | await () Aguarda o início da execução do agendador, incluindo a conclusão da transferência do TF antigo, se aplicável. |
static TradefedDelegator | checkDelegation (String[] args) Crie um delegador com base na linha de comando para ver se precisamos delegar a execução. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Crie um mapa do estado dos dispositivos para que eles possam ser liberados adequadamente. |
ISandbox | createSandbox () Crie um |
void | displayCommandQueue (PrintWriter printWriter) Saída de informações de depuração detalhadas sobre o estado da fila de execução do comando. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Saída de uma lista de comandos atuais. |
void | displayInvocationsInfo (PrintWriter printWriter) Exibe uma lista de invocações atuais. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Despeje o arquivo xml expandido para o comando com todos os valores |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Execute o comando diretamente em dispositivos já alocados. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Aloca um dispositivo diretamente e executa um comando sem adicioná-lo à fila de comandos usando um |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos. |
CommandFileWatcher | getCommandFileWatcher () Obtenha o |
int | getExecutingCommandCount () Retorna o número de Comandos em estado de execução. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Retorna as informações sobre uma invocação especificando o ID da invocação. |
CommandRunner.ExitCode | getLastInvocationExitCode () Retorna o código de erro da última chamada executada. |
Throwable | getLastInvocationThrowable () Retorna o |
int | getReadyCommandCount () Retorna o número de Comandos em estado pronto na fila. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Retorna true se o dispositivo for usado por um thread de invocação ativo. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Remova todos os comandos do agendador |
void | run () O bloco de execução principal deste thread. |
void | setClearcutClient (ClearcutClient client) Defina o cliente para relatar dados de chicote |
boolean | shouldShutdownOnCmdfileError () Retorne verdadeiro se precisarmos desligar o agendador em um erro de comando |
void | shutdown (boolean notifyStop) Tente desligar normalmente o agendador de comandos. |
void | shutdownHard (boolean killAdb) Tente encerrar à força o agendador de comandos. |
void | shutdownHard () Tente encerrar à força o agendador de comandos. |
void | shutdownOnEmpty () Semelhante a |
void | start () Inicia o agendador, incluindo a configuração do registro, inicialização do |
boolean | stopInvocation ( ITestInvocation invocation) Interrompa uma chamada em execução. |
boolean | stopInvocation (int invocationId, String cause) Interrompa uma chamada em execução especificando seu id. |
Construtores públicos
CommandScheduler
public CommandScheduler ()
Cria um CommandScheduler
.
Nota: start deve ser chamado antes do uso.
Métodos públicos
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Adiciona um comando ao agendador.
Um comando é essencialmente uma instância de uma configuração a ser executada e seus argumentos associados.
Se o argumento "--help" for especificado, o texto de ajuda para a configuração será enviado para stdout. Caso contrário, a configuração será adicionada à fila para execução.
Parâmetros | |
---|---|
args | String : os argumentos de configuração. |
devoluções | |
---|---|
Pair <Boolean, Integer> | Um par de valores, o primeiro valor é um Booleano true se o comando foi adicionado com sucesso. O segundo valor é o ID do rastreador de comando conhecido (valor não negativo) se o comando foi adicionado com sucesso, retorne 0 quando o comando for adicionado para todos os dispositivos, caso contrário, -1. |
lances | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Adiciona todos os comandos de determinado arquivo ao agendador
Parâmetros | |
---|---|
cmdFilePath | String : o caminho do sistema de arquivos do arquivo de comando |
extraArgs | ERROR(/List) de argumentos ERROR(/String) para anexar a cada comando analisado do arquivo. Pode estar vazio, mas não deve ser nulo. |
lances | |
---|---|
ConfigurationException |
aguardam
public void await ()
Aguarda o início da execução do agendador, incluindo a conclusão da transferência do TF antigo, se aplicável.
checkDelegação
public static TradefedDelegator checkDelegation (String[] args)
Crie um delegador com base na linha de comando para ver se precisamos delegar a execução.
Parâmetros | |
---|---|
args | String |
devoluções | |
---|---|
TradefedDelegator |
lances | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
criarReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crie um mapa do estado dos dispositivos para que eles possam ser liberados adequadamente.
Parâmetros | |
---|---|
context | IInvocationContext |
e | Throwable |
devoluções | |
---|---|
criarSandbox
public ISandbox createSandbox ()
Crie um ISandbox
que a chamada usará para executar.
devoluções | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Saída de informações de depuração detalhadas sobre o estado da fila de execução do comando.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Saída de uma lista de comandos atuais.
Parâmetros | |
---|---|
printWriter | PrintWriter : o ERROR(/PrintWriter) para o qual enviar. |
regex | String : a expressão regular com a qual os comandos devem corresponder para serem impressos. Se nulo, todos os comandos serão impressos. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Exibe uma lista de invocações atuais.
Parâmetros | |
---|---|
printWriter | PrintWriter : o ERROR(/PrintWriter) para o qual enviar. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Despeje o arquivo xml expandido para o comando com todos os valores Option
especificados para todos os comandos atuais.
Parâmetros | |
---|---|
printWriter | PrintWriter : o ERROR(/PrintWriter) para o qual enviar o status. |
regex | String : a expressão regular com a qual os comandos devem corresponder para que o arquivo xml seja despejado. Se nulo, todos os comandos serão despejados. |
comandoexec
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Execute o comando diretamente em dispositivos já alocados.
Parâmetros | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado |
reservedDevices | ERROR(/List ) ERROR(/List ) para usar |
args | String : os argumentos do comando |
devoluções | |
---|---|
long | O ID de invocação do comando agendado. |
lances | |
---|---|
ConfigurationException |
comandoexec
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Aloca um dispositivo diretamente e executa um comando sem adicioná-lo à fila de comandos usando um IInvocationContext
já existente.
Parâmetros | |
---|---|
context | IInvocationContext : um IInvocationContext existente. |
listener | ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado |
args | String : os argumentos do comando |
devoluções | |
---|---|
long |
lances | |
---|---|
ConfigurationException | |
NoDeviceException |
comandoexec
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos.
Parâmetros | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : o ICommandScheduler.IScheduledInvocationListener a ser informado |
args | String : os argumentos do comando |
devoluções | |
---|---|
long | O ID de invocação do comando agendado. |
lances | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtenha o CommandFileWatcher
apropriado para este agendador
devoluções | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Retorna o número de Comandos em estado de execução.
devoluções | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
devoluções | |
---|---|
CommandScheduler.HostState |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Retorna as informações sobre uma invocação especificando o ID da invocação.
Parâmetros | |
---|---|
invocationId | int : o ID de rastreamento da invocação. |
devoluções | |
---|---|
String | Um ERROR(/String) contendo informações sobre a invocação. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Retorna o código de erro da última chamada executada. Retorne 0 (sem erro), se nenhuma chamada foi executada ainda.
devoluções | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Retorna o ERROR(/Throwable)
da última chamada executada. Retorne null, se nenhum throwable estiver disponível.
devoluções | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Retorna o número de Comandos em estado pronto na fila.
devoluções | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
devoluções | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Retorna true se o dispositivo for usado por um thread de invocação ativo.
Parâmetros | |
---|---|
device | ITestDevice |
devoluções | |
---|---|
boolean |
está desligando
public boolean isShuttingDown ()
devoluções | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parâmetros | |
---|---|
cmdFile | File |
extraArgs |
removeAllCommands
public void removeAllCommands ()
Remova todos os comandos do agendador
correr
public void run ()
O bloco de execução principal deste thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Defina o cliente para relatar dados de chicote
Parâmetros | |
---|---|
client | ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Retorne verdadeiro se precisarmos desligar o agendador em um erro de comando
devoluções | |
---|---|
boolean |
desligar
public void shutdown (boolean notifyStop)
Tente desligar normalmente o agendador de comandos.
Parâmetros | |
---|---|
notifyStop | boolean : se true, notifica invocações de desligamento do TF. |
desligamentoDifícil
public void shutdownHard (boolean killAdb)
Tente encerrar à força o agendador de comandos.
Semelhante a shutdown()
, mas também matará opcionalmente a conexão adb, em uma tentativa de 'inspirar' as invocações em andamento para serem concluídas mais rapidamente.
Parâmetros | |
---|---|
killAdb | boolean |
desligamentoDifícil
public void shutdownHard ()
Tente encerrar à força o agendador de comandos. O mesmo que shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Semelhante a shutdown()
, mas, em vez disso, aguardará que todos os comandos sejam executados antes de sair.
começar
public void start ()
Inicia o agendador, incluindo a configuração do registro, inicialização do DeviceManager
, etc.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Interrompa uma chamada em execução.
Parâmetros | |
---|---|
invocation | ITestInvocation |
devoluções | |
---|---|
boolean | true se a invocação foi interrompida, false caso contrário |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Interrompa uma chamada em execução especificando seu id.
Parâmetros | |
---|---|
invocationId | int : o ID de rastreamento da invocação. |
cause | String : a causa para interromper a invocação. |
devoluções | |
---|---|
boolean | true se a invocação foi interrompida, false caso contrário |
Métodos protegidos
limpar
protected void cleanUp ()
Fecha os logs e faz qualquer outra limpeza necessária antes de sairmos.
Exposto para que os testes de unidade possam simular.
criarConfiguração
protected IConfiguration createConfiguration (String[] args)
Parâmetros | |
---|---|
args | String |
devoluções | |
---|---|
IConfiguration |
lances | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
devoluções | |
---|---|
IInvocationContext |
comandoexec
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parâmetros | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
devoluções | |
---|---|
long |
lances | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Método de fábrica para obter uma referência ao IConfigurationFactory
devoluções | |
---|---|
IConfigurationFactory | a IConfigurationFactory a ser usada |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
devoluções | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Método de fábrica para obter uma referência ao IDeviceManager
devoluções | |
---|---|
IDeviceManager | o IDeviceManager a ser usado |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
devoluções | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Busca um IKeyStoreClient
usando o IKeyStoreFactory
declarado em IGlobalConfiguration
ou nulo se nenhum estiver definido.
devoluções | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
devoluções | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inicializa o log ddmlib.
Exposto para que os testes de unidade possam simular.
isShutdown
protected boolean isShutdown ()
devoluções | |
---|---|
boolean |
ProcessReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parâmetros | |
---|---|
manager | IDeviceManager |