Trình lập lịch biểu lệnh
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Bộ lập lịch để chạy các lệnh TradeFederation trên tất cả các thiết bị khả dụng.
Sẽ cố gắng ưu tiên các lệnh để chạy dựa trên tổng số lần chạy trong thời gian thực hiện của chúng. ví dụ: các lệnh chạy nhanh hoặc không thường xuyên sẽ được ưu tiên hơn các lệnh chạy dài.
Chạy mãi mãi trong nền cho đến khi tắt máy.
Bản tóm tắt
nhà thầu công cộng | |
---|---|
CommandScheduler () Tạo một |
Phương thức công khai | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Thêm một lệnh vào lịch trình. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Thêm tất cả các lệnh từ tệp đã cho vào bộ lập lịch |
void | await () Đợi bộ lập lịch bắt đầu chạy, bao gồm chờ quá trình chuyển giao từ TF cũ hoàn tất nếu có. |
static TradefedDelegator | checkDelegation (String[] args) Tạo một bộ ủy quyền dựa trên dòng lệnh để xem liệu chúng ta có cần ủy quyền việc chạy hay không. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Tạo bản đồ trạng thái thiết bị để chúng có thể được phát hành một cách thích hợp. |
ISandbox | createSandbox () Tạo một |
void | displayCommandQueue (PrintWriter printWriter) Xuất thông tin gỡ lỗi chi tiết về trạng thái của hàng đợi thực thi lệnh. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Xuất danh sách các lệnh hiện tại. |
void | displayInvocationsInfo (PrintWriter printWriter) Hiển thị danh sách các yêu cầu hiện tại. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Kết xuất tệp xml đã mở rộng cho lệnh với tất cả các giá trị |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Trực tiếp thực hiện lệnh trên các thiết bị đã được phân bổ. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Trực tiếp phân bổ một thiết bị và thực thi một lệnh mà không cần thêm nó vào hàng đợi lệnh bằng cách sử dụng |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Cấp phát trực tiếp thiết bị và thực thi lệnh mà không cần thêm nó vào hàng đợi lệnh. |
CommandFileWatcher | getCommandFileWatcher () Nhận |
int | getExecutingCommandCount () Trả về số Lệnh ở trạng thái thực thi. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Trả lại thông tin về một lời gọi bu chỉ định id lời gọi. |
CommandRunner.ExitCode | getLastInvocationExitCode () Trả lại mã lỗi của lệnh gọi cuối cùng đã chạy. |
Throwable | getLastInvocationThrowable () Trả về |
int | getReadyCommandCount () Trả về số Lệnh ở trạng thái sẵn sàng trong hàng đợi. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Trả về true nếu thiết bị được sử dụng bởi chuỗi yêu cầu đang hoạt động. |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Xóa tất cả các lệnh khỏi bộ lập lịch |
void | run () Khối thực thi chính của chủ đề này. |
void | setClearcutClient (ClearcutClient client) Đặt khách hàng để báo cáo dữ liệu khai thác |
boolean | shouldShutdownOnCmdfileError () Trả về true nếu chúng ta cần tắt bộ lập lịch khi có lỗi lệnh |
void | shutdown (boolean notifyStop) Cố gắng tắt bộ lập lịch lệnh một cách duyên dáng. |
void | shutdownHard (boolean killAdb) Cố gắng tắt mạnh bộ lập lịch lệnh. |
void | shutdownHard () Cố gắng tắt mạnh bộ lập lịch lệnh. |
void | shutdownOnEmpty () Tương tự như |
void | start () Khởi động bộ lập lịch bao gồm thiết lập ghi nhật ký, init của |
boolean | stopInvocation ( ITestInvocation invocation) Dừng một lời gọi đang chạy. |
boolean | stopInvocation (int invocationId, String cause) Dừng một lời gọi đang chạy bằng cách chỉ định id của nó. |
nhà thầu công cộng
Trình lập lịch biểu lệnh
public CommandScheduler ()
Tạo một CommandScheduler
.
Lưu ý: start phải được gọi trước khi sử dụng.
Phương thức công khai
thêmCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Thêm một lệnh vào lịch trình.
Một lệnh về cơ bản là một thể hiện của một cấu hình để chạy và các đối số liên quan của nó.
Nếu đối số "--help" được chỉ định, văn bản trợ giúp cho cấu hình sẽ được xuất ra thiết bị xuất chuẩn. Nếu không, cấu hình sẽ được thêm vào hàng đợi để chạy.
Thông số | |
---|---|
args | String : các đối số cấu hình. |
trả lại | |
---|---|
Pair <Boolean, Integer> | Một cặp giá trị, giá trị đầu tiên là Boolean true nếu lệnh được thêm thành công. Giá trị thứ hai là id trình theo dõi lệnh đã biết (giá trị không âm) nếu lệnh được thêm thành công, trả về 0 khi lệnh được thêm cho tất cả các thiết bị, nếu không -1. |
ném | |
---|---|
ConfigurationException |
thêmCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Thêm tất cả các lệnh từ tệp đã cho vào bộ lập lịch
Thông số | |
---|---|
cmdFilePath | String : đường dẫn hệ thống tệp của tệp comand |
extraArgs | ERROR(/List) của ERROR(/String) để thêm vào mỗi lệnh được phân tích cú pháp từ tệp. Có thể để trống nhưng không được rỗng. |
ném | |
---|---|
ConfigurationException |
chờ đợi
public void await ()
Đợi bộ lập lịch bắt đầu chạy, bao gồm chờ quá trình chuyển giao từ TF cũ hoàn tất nếu có.
kiểm tra ủy quyền
public static TradefedDelegator checkDelegation (String[] args)
Tạo một bộ ủy quyền dựa trên dòng lệnh để xem liệu chúng ta có cần ủy quyền việc chạy hay không.
Thông số | |
---|---|
args | String |
trả lại | |
---|---|
TradefedDelegator |
ném | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
tạoReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Tạo bản đồ trạng thái thiết bị để chúng có thể được phát hành một cách thích hợp.
Thông số | |
---|---|
context | IInvocationContext |
e | Throwable |
trả lại | |
---|---|
tạoSandbox
public ISandbox createSandbox ()
Tạo một ISandbox
mà lệnh gọi sẽ sử dụng để chạy.
trả lại | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Xuất thông tin gỡ lỗi chi tiết về trạng thái của hàng đợi thực thi lệnh.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Xuất danh sách các lệnh hiện tại.
Thông số | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) để xuất ra. |
regex | String : biểu thức chính quy mà các lệnh sẽ được khớp để được in. Nếu null, thì tất cả các lệnh sẽ được in. |
hiển thịInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Hiển thị danh sách các yêu cầu hiện tại.
Thông số | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) để xuất ra. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Kết xuất tệp xml đã mở rộng cho lệnh với tất cả các giá trị Option
được chỉ định cho tất cả các lệnh hiện tại.
Thông số | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) để xuất trạng thái sang. |
regex | String : biểu thức chính quy mà các lệnh sẽ được đối sánh để tệp xml được kết xuất. Nếu null, thì tất cả các lệnh sẽ bị hủy. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Trực tiếp thực hiện lệnh trên các thiết bị đã được phân bổ.
Thông số | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener được thông báo |
reservedDevices | ERROR(/List ) ERROR(/List ) để sử dụng |
args | String : các đối số lệnh |
trả lại | |
---|---|
long | Id lời gọi của lệnh đã lên lịch. |
ném | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Trực tiếp phân bổ một thiết bị và thực thi một lệnh mà không cần thêm nó vào hàng đợi lệnh bằng cách sử dụng IInvocationContext
đã có sẵn.
Thông số | |
---|---|
context | IInvocationContext : một IInvocationContext hiện có. |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener được thông báo |
args | String : các đối số lệnh |
trả lại | |
---|---|
long |
ném | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Cấp phát trực tiếp thiết bị và thực thi lệnh mà không cần thêm nó vào hàng đợi lệnh.
Thông số | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener được thông báo |
args | String : các đối số lệnh |
trả lại | |
---|---|
long | Id lời gọi của lệnh đã lên lịch. |
ném | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Nhận CommandFileWatcher
thích hợp cho bộ lập lịch này
trả lại | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Trả về số Lệnh ở trạng thái thực thi.
trả lại | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Trả lại thông tin về một lời gọi bu chỉ định id lời gọi.
Thông số | |
---|---|
invocationId | int : id theo dõi của lệnh gọi. |
trả lại | |
---|---|
String | MỘT ERROR(/String) chứa thông tin về lệnh gọi. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Trả lại mã lỗi của lệnh gọi cuối cùng đã chạy. Trả về 0 (không có lỗi), nếu chưa chạy lời gọi nào.
trả lại | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Trả về ERROR(/Throwable)
từ lệnh gọi cuối cùng đã chạy. Trả về null, nếu không có sẵn ném.
trả lại | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Trả về số Lệnh ở trạng thái sẵn sàng trong hàng đợi.
trả lại | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
trả lại | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Trả về true nếu thiết bị được sử dụng bởi chuỗi yêu cầu đang hoạt động.
Thông số | |
---|---|
device | ITestDevice |
trả lại | |
---|---|
boolean |
thông báoTệp đã thay đổi
public void notifyFileChanged (File cmdFile,extraArgs)
Thông số | |
---|---|
cmdFile | File |
extraArgs |
loại bỏ tất cả các lệnh
public void removeAllCommands ()
Xóa tất cả các lệnh khỏi bộ lập lịch
chạy
public void run ()
Khối thực thi chính của chủ đề này.
thiết lậpClearcutClient
public void setClearcutClient (ClearcutClient client)
Đặt khách hàng để báo cáo dữ liệu khai thác
Thông số | |
---|---|
client | ClearcutClient |
nênShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Trả về true nếu chúng ta cần tắt bộ lập lịch khi có lỗi lệnh
trả lại | |
---|---|
boolean |
tắt
public void shutdown (boolean notifyStop)
Cố gắng tắt bộ lập lịch lệnh một cách duyên dáng.
Thông số | |
---|---|
notifyStop | boolean : nếu đúng, thông báo yêu cầu tắt TF. |
tắt máyCứng
public void shutdownHard (boolean killAdb)
Cố gắng tắt mạnh bộ lập lịch lệnh.
Tương tự như shutdown()
, nhưng cũng sẽ tùy chọn hủy kết nối adb, nhằm cố gắng 'truyền cảm hứng' cho các yêu cầu đang diễn ra để hoàn thành nhanh hơn.
Thông số | |
---|---|
killAdb | boolean |
tắt máyCứng
public void shutdownHard ()
Cố gắng tắt mạnh bộ lập lịch lệnh. Tương tự như shutdownHard(true).
tắt máyOnRỗng
public void shutdownOnEmpty ()
Tương tự như shutdown()
, nhưng thay vào đó sẽ đợi tất cả các lệnh được thực thi trước khi thoát.
bắt đầu
public void start ()
Khởi động bộ lập lịch bao gồm thiết lập ghi nhật ký, init của DeviceManager
, v.v.
ngừng gọi
public boolean stopInvocation (ITestInvocation invocation)
Dừng một lời gọi đang chạy.
Thông số | |
---|---|
invocation | ITestInvocation |
trả lại | |
---|---|
boolean | đúng nếu lời gọi bị dừng, ngược lại là sai |
ngừng gọi
public boolean stopInvocation (int invocationId, String cause)
Dừng một lời gọi đang chạy bằng cách chỉ định id của nó.
Thông số | |
---|---|
invocationId | int : id theo dõi của lệnh gọi. |
cause | String : nguyên nhân dừng lời gọi. |
trả lại | |
---|---|
boolean | đúng nếu lời gọi bị dừng, ngược lại là sai |
phương pháp được bảo vệ
dọn dẹp
protected void cleanUp ()
Đóng nhật ký và thực hiện bất kỳ thao tác dọn dẹp cần thiết nào khác trước khi chúng tôi thoát.
Tiếp xúc để các bài kiểm tra đơn vị có thể giả định.
tạo cấu hình
protected IConfiguration createConfiguration (String[] args)
Thông số | |
---|---|
args | String |
trả lại | |
---|---|
IConfiguration |
ném | |
---|---|
ConfigurationException |
tạoInvocationContext
protected IInvocationContext createInvocationContext ()
trả lại | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Thông số | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
trả lại | |
---|---|
long |
ném | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Phương thức xuất xưởng để lấy tham chiếu đến IConfigurationFactory
trả lại | |
---|---|
IConfigurationFactory | IConfigurationFactory để sử dụng |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
trả lại | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Phương thức xuất xưởng để lấy tham chiếu đến IDeviceManager
trả lại | |
---|---|
IDeviceManager | IDeviceManager để sử dụng |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Tìm nạp một IKeyStoreClient
bằng cách sử dụng IKeyStoreFactory
được khai báo trong IGlobalConfiguration
hoặc null nếu không có giá trị nào được xác định.
trả lại | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationQuản lý máy chủ
protected TestInvocationManagementServer getTestInvocationManagementServer ()
trả lại | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Khởi tạo nhật ký ddmlib.
Tiếp xúc để các bài kiểm tra đơn vị có thể giả định.
isShutdown
protected boolean isShutdown ()
trả lại | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
trả lại | |
---|---|
boolean |
processReadyLệnh
protected void processReadyCommands (IDeviceManager manager)
Thông số | |
---|---|
manager | IDeviceManager |