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 CommandScheduler .

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 ISandbox mà lệnh gọi sẽ sử dụng để chạy.

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ị Option được chỉ định cho tất cả các lệnh hiện tại.

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 IInvocationContext đã có sẵn.

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 Throwable từ lệnh gọi cuối cùng đã chạy.

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ư shutdown() , nhưng thay vào đó sẽ đợi tất cả các lệnh được thực thi trước khi thoát.

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.

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.

Phương pháp được bảo vệ

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.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
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.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Phương thức xuất xưởng để nhận tham chiếu đến IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Phương thức xuất xưởng để nhận tham chiếu đến IDeviceManager

TradefedFeatureServer getFeatureServer ()
IHostOptions getHostOptions ()
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.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Khởi tạo nhật ký ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

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 : một 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 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.

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

getHostState

public CommandScheduler.HostState getHostState ()

Trả lại
CommandScheduler.HostState

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.

Lưu ý rằng nếu bất kỳ lệnh nào ở chế độ vòng lặp, bộ lập lịch sẽ không bao giờ thoát ra.

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Trả lại
TradefedFeatureServer

gethostOptions

protected IHostOptions getHostOptions ()

Trả lại
IHostOptions

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