명령스케줄러
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Object | |
↳ | 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) 모든 현재 명령에 대해 지정된 모든 |
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) 호출 ID를 지정하여 호출에 대한 정보를 반환합니다. |
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) ID를 지정하여 실행 중인 호출을 중지합니다. |
보호된 방법 | |
---|---|
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 () 모든 호출 스레드가 완료될 때까지 기다리십시오. |
공개 생성자
공개 메소드
add명령
public boolean addCommand (String[] args)
스케줄러에 명령을 추가합니다.
명령은 기본적으로 실행할 구성 및 관련 인수의 인스턴스입니다. "--help" 인수가 지정되면 구성에 대한 도움말 텍스트가 stdout으로 출력됩니다. 그렇지 않으면 구성이 실행할 대기열에 추가됩니다.매개변수 | |
---|---|
args | String : 구성 인수입니다. |
보고 | |
---|---|
boolean | 명령이 성공적으로 추가된 경우 true |
던지기 | |
---|---|
ConfigurationException |
addCommand파일
public void addCommandFile (String cmdFilePath,extraArgs)
지정된 파일의 모든 명령을 스케줄러에 추가합니다.
매개변수 | |
---|---|
cmdFilePath | String : 명령 파일의 파일 시스템 경로 |
extraArgs | String 인수의 ERROR(/List) . 비어 있을 수 있지만 null이 아니어야 합니다. |
던지기 | |
---|---|
ConfigurationException |
기다리다
public void await ()
해당되는 경우 이전 TF에서 핸드오버가 완료될 때까지 기다리는 것을 포함하여 스케줄러가 실행되기 시작할 때까지 기다립니다.
위임 확인
public static TradefedDelegator checkDelegation (String[] args)
실행을 위임해야 하는지 확인하려면 명령줄을 기반으로 위임자를 만듭니다.
매개변수 | |
---|---|
args | String |
보고 | |
---|---|
TradefedDelegator |
던지기 | |
---|---|
ConfigurationException |
완료핸드오버
public void completeHandover ()
시작된 핸드오버 시퀀스가 완전히 완료되었으며 기본 포트에서 원격 관리자를 다시 초기화해야 함을 명령 스케줄러에 알립니다.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
적절하게 릴리스될 수 있도록 장치 상태의 맵을 만듭니다.
매개변수 | |
---|---|
context | IInvocationContext |
e | Throwable |
보고 | |
---|---|
디스플레이CommandQueue
public void displayCommandQueue (PrintWriter printWriter)
명령 실행 대기열 상태에 대한 자세한 디버그 정보를 출력합니다.
표시명령정보
public void displayCommandsInfo (PrintWriter printWriter, String regex)
현재 명령 목록을 출력합니다.
매개변수 | |
---|---|
printWriter | PrintWriter : 출력할 ERROR(/PrintWriter) 입니다. |
regex | String : 인쇄하기 위해 명령과 일치해야 하는 정규식입니다. null이면 모든 명령이 인쇄됩니다. |
디스플레이호출정보
public void displayInvocationsInfo (PrintWriter printWriter)
현재 호출 목록을 표시합니다.
매개변수 | |
---|---|
printWriter | PrintWriter : 출력할 ERROR(/PrintWriter) 입니다. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
모든 현재 명령에 대해 지정된 모든 Option
값을 사용하여 명령에 대한 확장된 xml 파일을 덤프합니다.
매개변수 | |
---|---|
printWriter | PrintWriter : 상태를 출력할 ERROR(/PrintWriter) . |
regex | String : xml 파일을 덤프하기 위해 명령이 일치해야 하는 정규식입니다. null이면 모든 명령이 덤프됩니다. |
exec명령
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
이미 할당된 장치에 직접 명령을 실행합니다.
매개변수 | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : 알림을 받을 ICommandScheduler.IScheduledInvocationListener |
device | ITestDevice : 사용할 ITestDevice |
args | String : 명령 인수 |
던지기 | |
---|---|
ConfigurationException |
exec명령
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
이미 존재하는 IInvocationContext
를 사용하여 장치를 명령 대기열에 추가하지 않고 장치를 직접 할당하고 명령을 실행합니다.
매개변수 | |
---|---|
context | IInvocationContext : 기존 IInvocationContext . |
listener | ICommandScheduler.IScheduledInvocationListener : 알림을 받을 ICommandScheduler.IScheduledInvocationListener |
args | String : 명령 인수 |
던지기 | |
---|---|
ConfigurationException | |
NoDeviceException |
exec명령
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 |
getInvocationInfo
public String getInvocationInfo (int invocationId)
호출 ID를 지정하여 호출에 대한 정보를 반환합니다.
매개변수 | |
---|---|
invocationId | int : 호출의 추적 ID입니다. |
보고 | |
---|---|
String | 호출에 대한 정보가 포함된 String 입니다. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
실행된 마지막 호출의 오류 코드를 반환합니다. 아직 호출이 실행되지 않은 경우 0(오류 없음)을 반환합니다.
보고 | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
실행된 마지막 호출에서 Throwable
을 반환합니다. Throwable을 사용할 수 없으면 null을 반환합니다.
보고 | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
대기열에서 준비 상태인 명령 수를 반환합니다.
보고 | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
보고 | |
---|---|
long |
핸드오버개시완료
public void handoverInitiationComplete ()
사용 중인 기기와 명령어의 초기 핸드오버 교환이 완료되었음을 명령어 스케줄러에게 알려주고, 스케줄링 작업을 시작할 수 있다.
핸드오버종료
public boolean handoverShutdown (int handoverPort)
동일한 호스트에서 shutdown()
시작하고 다른 tradefed 프로세스로 핸드오버합니다.
매개변수 | |
---|---|
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 |
ShutdownOnCmdfileError가 발생해야 합니다.
public boolean shouldShutdownOnCmdfileError ()
명령 오류로 인해 스케줄러를 종료해야 하는 경우 true를 반환합니다.
보고 | |
---|---|
boolean |
일시 휴업
public void shutdown ()
명령 스케줄러를 정상적으로 종료해 보십시오.
테스트 대기 중인 명령을 지우고 진행 중인 모든 호출이 정상적으로 종료되도록 요청합니다. 종료가 호출된 후 스케줄러 메인 루프는 완전히 종료되기 전에 진행 중인 모든 호출이 완료될 때까지 기다립니다.종료하드
public void shutdownHard (boolean killAdb)
명령 스케줄러를 강제로 종료해 보십시오.
shutdown()
과 유사하지만 더 빠르게 완료하기 위해 진행 중인 호출을 '고취'하기 위해 선택적으로 adb 연결을 종료합니다.
매개변수 | |
---|---|
killAdb | boolean |
종료하드
public void shutdownHard ()
명령 스케줄러를 강제로 종료해 보십시오. shutdownHard(true)와 동일합니다.
종료시 비어 있음
public void shutdownOnEmpty ()
shutdown()
과 비슷하지만, 대신 종료하기 전에 모든 명령이 실행될 때까지 기다립니다.
중지 호출
public boolean stopInvocation (ITestInvocation invocation)
실행 중인 호출을 중지합니다.
매개변수 | |
---|---|
invocation | ITestInvocation |
보고 | |
---|---|
boolean | 호출이 중지되었으면 true, 그렇지 않으면 false |
중지 호출
public boolean stopInvocation (int invocationId, String cause)
ID를 지정하여 실행 중인 호출을 중지합니다.
매개변수 | |
---|---|
invocationId | int : 호출의 추적 ID입니다. |
cause | String : 호출을 중지하는 원인입니다. |
보고 | |
---|---|
boolean | 호출이 중지되었으면 true, 그렇지 않으면 false |
보호된 방법
대청소
protected void cleanUp ()
종료하기 전에 로그를 닫고 기타 필요한 정리를 수행합니다.
단위 테스트가 모의할 수 있도록 노출됩니다.
createConfiguration
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 |
getHostOptions
protected IHostOptions getHostOptions ()
보고 | |
---|---|
IHostOptions |
getKeyStore클라이언트
protected IKeyStoreClient getKeyStoreClient ()
IGlobalConfiguration
에 선언된 IKeyStoreClient
를 사용하여 IKeyStoreFactory
가져오거나 정의된 것이 없으면 null을 가져옵니다.
보고 | |
---|---|
IKeyStoreClient | IKeyStore클라이언트 |
초기화로깅
protected void initLogging ()
ddmlib 로그를 초기화합니다.
단위 테스트가 모의할 수 있도록 노출됩니다.
종료됨
protected boolean isShutdown ()
보고 | |
---|---|
boolean |
종료 중
protected boolean isShuttingDown ()
보고 | |
---|---|
boolean |
processReady명령
protected void processReadyCommands (IDeviceManager manager)
매개변수 | |
---|---|
manager | IDeviceManager |
waitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
모든 호출 스레드가 완료될 때까지 기다리십시오.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2023-12-01(UTC)