Bộ lập lịch 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ị có sẵn.
Sẽ cố gắng ưu tiên chạy các lệnh 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 không thường xuyên hoặc chạy nhanh sẽ được ưu tiên hơn các lệnh chạy dài.
Chạy mãi mãi ở chế độ nền cho đến khi tắt máy.
Bản tóm tắt
Nhà thầu xây dựng công cộng | |
---|---|
CommandScheduler () Tạo một |
Phương pháp công cộng | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Thêm lệnh vào bộ lập lịch. |
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 () Chờ bộ lập lịch bắt đầu chạy, bao gồm cả việc chờ 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 lần chạy hay không. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Tạo bản đồ về trạng thái của 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 hàng đợi thực thi lệnh. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Xuất ra danh sách các lệnh hiện tại. |
void | displayInvocationsInfo (PrintWriter printWriter) Hiển thị danh sách các lời gọi 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) Thực thi trực tiếp lệnh trên các thiết bị đã được phân bổ. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Phân bổ trực tiếp 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) Phân bổ trực tiếp một 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 CommandFileWatcher thích hợp cho bộ lập lịch này |
int | getExecutingCommandCount () Trả về số Lệnh ở trạng thái thực thi. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Trả về thông tin về lệnh gọi bu chỉ định id lệnh gọi. |
CommandRunner.ExitCode | getLastInvocationExitCode () Trả về mã lỗi của lệnh gọi cuối cùng đã chạy. |
Throwable | getLastInvocationThrowable () Trả lại |
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 một luồng yêu cầu đang hoạt động. |
boolean | isShuttingDown () |
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 luồng này. |
void | setClearcutClient (ClearcutClient client) Đặt máy khách 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 do lỗi lệnh |
void | shutdown (boolean notifyStop) Cố gắng tắt bộ lập lịch lệnh một cách nhẹ nhà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ý, khởi tạo |
boolean | stopInvocation ( ITestInvocation invocation) Dừng một lệnh gọi đang chạy. |
boolean | stopInvocation (int invocationId, String cause) Dừng lệnh gọi đang chạy bằng cách chỉ định id của nó. |
void | stopScheduling () Dừng lên lịch và chấp nhận các thử nghiệm mới nhưng không dừng Tradefed. |
Nhà thầu xây dựng công cộng
Bộ lập lịch lệnh
public CommandScheduler ()
Tạo một CommandScheduler
.
Lưu ý: bắt đầu phải được gọi trước khi sử dụng.
Phương pháp công cộng
thêm lệnh
public Pair<Boolean, Integer> addCommand (String[] args)
Thêm lệnh vào bộ lập lịch.
Lệnh về cơ bản là một phiên bản của 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. Ngược lại, config 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 thì -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 tin của tập tin lệnh |
extraArgs | ERROR(/List) của các đối số 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 ()
Chờ bộ lập lịch bắt đầu chạy, bao gồm cả việc chờ 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 lần chạy hay không.
Thông số | |
---|---|
args | String |
Trả lại | |
---|---|
TradefedDelegator |
Ném | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
tạoBản đồ phát hành
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Tạo bản đồ về trạng thái của 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 |
hiển thịCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Xuất thông tin gỡ lỗi chi tiết về trạng thái hàng đợi thực thi lệnh.
hiển thịLệnhThông tin
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Xuất ra 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 phải khớp với để được in. Nếu null thì tất cả các lệnh sẽ được in. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Hiển thị danh sách các lời gọi hiện tại.
Thông số | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) để xuất ra. |
đổLệnhXml
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 phải được khớp để kết xuất tệp xml. Nếu null thì tất cả các lệnh sẽ bị hủy. |
lệnh thực thi
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Thực thi trực tiếp 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 : đối số lệnh |
Trả lại | |
---|---|
long | Id lệnh gọi của lệnh đã lên lịch. |
Ném | |
---|---|
ConfigurationException |
lệnh thực thi
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Phân bổ trực tiếp 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 : IInvocationContext hiện có. |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener được thông báo |
args | String : đối số lệnh |
Trả lại | |
---|---|
long |
Ném | |
---|---|
ConfigurationException | |
NoDeviceException |
lệnh thực thi
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Phân bổ trực tiếp một 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 : đối số lệnh |
Trả lại | |
---|---|
long | Id lệnh 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ả về thông tin về lệnh gọi bu chỉ định id lệnh gọi.
Thông số | |
---|---|
invocationId | int : id theo dõi của lệnh gọi. |
Trả lại | |
---|---|
String | Một String chứa thông tin về lệnh gọi. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Trả về 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 có lệnh gọi nào chạy.
Trả lại | |
---|---|
CommandRunner.ExitCode |
getLastInvocationCó thể ném được
public Throwable getLastInvocationThrowable ()
Trả lại Throwable
từ lệnh gọi cuối cùng đã chạy. Trả về null, nếu không có sẵn vật phẩm có thể ném được.
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 một luồng yêu cầu đang hoạt động.
Thông số | |
---|---|
device | ITestDevice |
Trả lại | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Trả lại | |
---|---|
boolean |
thông báoFileChanged
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 luồng này.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Đặt máy khách 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 do 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 nhẹ nhà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 ý tắt kết nối adb, nhằm cố gắng 'truyền cảm hứng' cho các lệnh gọi đ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ư tắt máyHard(true).
tắt máyOnEmpty
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ý, khởi tạo DeviceManager
, v.v.
dừng lạiLời mời
public boolean stopInvocation (ITestInvocation invocation)
Dừng một lệnh gọi đang chạy.
Thông số | |
---|---|
invocation | ITestInvocation |
Trả lại | |
---|---|
boolean | đúng nếu lệnh gọi bị dừng, sai nếu không |
dừng lạiLời mời
public boolean stopInvocation (int invocationId, String cause)
Dừng lệnh 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 việc gọi. |
Trả lại | |
---|---|
boolean | đúng nếu lệnh gọi bị dừng, sai nếu không |
dừng lại Lập kế hoạch
public void stopScheduling ()
Dừng lên lịch và chấp nhận các thử nghiệm mới nhưng không dừng Tradefed. Điều này nhằm cho phép tắt máy theo hai bước, trong đó trước tiên chúng tôi sẽ thoát tất cả các thử nghiệm đang chạy, sau đó chấm dứt quy trình Tradefed.
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ể chế nhạo.
tạoCấu hình
protected IConfiguration createConfiguration (String[] args)
Thông số | |
---|---|
args | String |
Trả lại | |
---|---|
IConfiguration |
Ném | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Trả lại | |
---|---|
IInvocationContext |
dryRunCommandBáo cáo
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Xác định xem lệnh đã cho có phải là lệnh chạy thử hay không. Nếu lệnh chạy thử, hãy xác thực nó. Nếu có bất kỳ vấn đề nào về cấu hình, nó sẽ đưa ra Cấu hình ngoại lệ.
Thông số | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) để báo cáo các sự kiện nhằm xác thực chạy thử. |
config | IConfiguration |
Trả lại | |
---|---|
void | đúng nếu lệnh chạy thử, ngược lại là sai. |
Ném | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
lệnh thực thi
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 để nhận tham chiếu đến IConfigurationFactory
Trả lại | |
---|---|
IConfigurationFactory | IConfigurationFactory để sử dụng |
getDeviceQuản lýMáy chủ
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Trả lại | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Phương thức xuất xưởng để nhận tham chiếu đến IDeviceManager
Trả lại | |
---|---|
IDeviceManager | IDeviceManager để sử dụng |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Tìm nạp IKeyStoreClient
bằng cách sử dụng IKeyStoreFactory
được khai báo trong IGlobalConfiguration
hoặc null nếu không xác định.
Trả lại | |
---|---|
IKeyStoreClient | IKeyStoreKhách hàng |
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ể chế nhạo.
isShutdown
protected boolean isShutdown ()
Trả lại | |
---|---|
boolean |
quá trình sẵn sàngLệnh
protected void processReadyCommands (IDeviceManager manager)
Thông số | |
---|---|
manager | IDeviceManager |