CommandScheduler
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.object | |
↳ | com.android.tradefed.command.CommandScheduler |
یک زمانبندی برای اجرای دستورات TradeFederation در تمام دستگاه های موجود.
تلاش خواهد کرد تا دستورات را بر اساس تعداد کل زمان اجرای آنها اولویت بندی کند. به عنوان مثال، دستورات نادر یا سریع در حال اجرا بر دستورات طولانی در اولویت قرار می گیرند.
تا زمان خاموش شدن برای همیشه در پس زمینه اجرا می شود.
خلاصه
سازندگان عمومی | |
---|---|
CommandScheduler () یک |
روش های عمومی | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) دستوری را به زمانبندی اضافه می کند. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) تمام دستورات فایل داده شده را به زمانبندی اضافه می کند |
void | await () منتظر میماند تا زمانبندی شروع به اجرا کند، از جمله انتظار برای تکمیل تحویل از TF قدیمی در صورت لزوم. |
static TradefedDelegator | checkDelegation (String[] args) یک delegator بر اساس خط فرمان ایجاد کنید تا ببینید آیا نیاز به واگذاری اجرا داریم یا خیر. |
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) فایل xml گسترشیافته را با تمام مقادیر |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) به طور مستقیم دستور را در دستگاه های از قبل تخصیص داده شده اجرا کنید. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) به طور مستقیم یک دستگاه را اختصاص می دهد و یک فرمان را بدون افزودن آن به صف فرمان با استفاده از یک |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) به طور مستقیم یک دستگاه را اختصاص می دهد و یک دستور را بدون افزودن آن به صف فرمان اجرا می کند. |
CommandFileWatcher | getCommandFileWatcher () CommandFileWatcher مناسب را برای این زمانبندی دریافت کنید |
int | getExecutingCommandCount () تعداد دستورات را در حالت اجرا برمیگرداند. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) اطلاعات یک invocation bu را که شناسه فراخوانی را مشخص می کند، برگردانید. |
CommandRunner.ExitCode | getLastInvocationExitCode () کد خطای آخرین فراخوانی که اجرا شد را برگردانید. |
Throwable | getLastInvocationThrowable () |
int | getReadyCommandCount () تعداد دستورات را در حالت آماده در صف برمی گرداند. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) اگر دستگاه توسط یک رشته فراخوانی فعال استفاده شود، مقدار true را برمیگرداند. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () تمام دستورات را از زمانبندی حذف کنید |
void | run () بلوک اصلی اجرای این موضوع. |
void | setClearcutClient (ClearcutClient client) سرویس گیرنده را تنظیم کنید تا داده های مهار را گزارش کند |
boolean | shouldShutdownOnCmdfileError () اگر نیاز به خاموش کردن زمانبند در خطاهای یک فرمان داریم، مقدار true را برگردانید |
void | shutdown (boolean notifyStop) سعی کنید برنامه زمانبندی فرمان را با ظرافت خاموش کنید. |
void | shutdownHard (boolean killAdb) سعی کنید به اجبار زمانبندی فرمان را خاموش کنید. |
void | shutdownHard () سعی کنید به اجبار زمانبندی فرمان را خاموش کنید. |
void | shutdownOnEmpty () شبیه |
void | start () زمانبندی را از جمله راهاندازی لاگ، init |
boolean | stopInvocation ( ITestInvocation invocation) یک فراخوان در حال اجرا را متوقف کنید. |
boolean | stopInvocation (int invocationId, String cause) یک فراخوان در حال اجرا را با مشخص کردن شناسه آن متوقف کنید. |
void | stopScheduling () برنامه ریزی و پذیرش تست های جدید را متوقف می کند اما Tradefed را متوقف نمی کند. |
سازندگان عمومی
CommandScheduler
public CommandScheduler ()
یک CommandScheduler
ایجاد می کند.
توجه: شروع باید قبل از استفاده فراخوانی شود.
روش های عمومی
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
دستوری را به زمانبندی اضافه می کند.
یک دستور اساساً نمونه ای از پیکربندی برای اجرا و آرگومان های مرتبط با آن است.
اگر آرگومان "--help" مشخص شده باشد، متن راهنما برای پیکربندی برای stdout خروجی خواهد شد. در غیر این صورت پیکربندی برای اجرا به صف اضافه می شود.
پارامترها | |
---|---|
args | String : آرگومان های پیکربندی. |
برمی گرداند | |
---|---|
Pair <Boolean, Integer> | یک جفت مقدار، اگر دستور با موفقیت اضافه شود، مقدار اول یک true بولی است. مقدار دوم، شناسه ردیاب فرمان شناخته شده (مقدار غیر منفی) است، اگر دستور با موفقیت اضافه شد، وقتی دستور برای همه دستگاهها اضافه شد، 0 را برگردانید، در غیر این صورت -1. |
پرتاب می کند | |
---|---|
ConfigurationException |
افزودن CommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
تمام دستورات فایل داده شده را به زمانبندی اضافه می کند
پارامترها | |
---|---|
cmdFilePath | String : مسیر فایل سیستم فایل فرمان |
extraArgs | ERROR(/List) از آرگومان های String که به هر دستور تجزیه شده از فایل اضافه می شود. می تواند خالی باشد اما نباید پوچ باشد. |
پرتاب می کند | |
---|---|
ConfigurationException |
در انتظار
public void await ()
منتظر میماند تا زمانبندی شروع به اجرا کند، از جمله انتظار برای تکمیل تحویل از TF قدیمی در صورت لزوم.
تفویض اختیار را بررسی کنید
public static TradefedDelegator checkDelegation (String[] args)
یک delegator بر اساس خط فرمان ایجاد کنید تا ببینید آیا نیاز به واگذاری اجرا داریم یا خیر.
پارامترها | |
---|---|
args | String |
برمی گرداند | |
---|---|
TradefedDelegator |
پرتاب می کند | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
نقشه ای از وضعیت دستگاه ها ایجاد کنید تا بتوانند به طور مناسب منتشر شوند.
پارامترها | |
---|---|
context | IInvocationContext |
e | Throwable |
برمی گرداند | |
---|---|
ایجاد سندباکس
public ISandbox createSandbox ()
یک ISandbox
ایجاد کنید که فراخوان برای اجرا از آن استفاده کند.
برمی گرداند | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
اطلاعات دقیق اشکال زدایی را در مورد وضعیت صف اجرای فرمان خروجی بگیرید.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
خروجی لیستی از دستورات فعلی
پارامترها | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) برای خروجی. |
regex | String : عبارت منظمی که دستورات باید با آن مطابقت داده شوند تا چاپ شوند. اگر null باشد، تمام دستورات چاپ خواهند شد. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
فهرستی از فراخوان های جاری را نمایش می دهد.
پارامترها | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) برای خروجی. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
فایل xml گسترشیافته را با تمام مقادیر Option
مشخصشده برای همه دستورات فعلی تخلیه کنید.
پارامترها | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) برای خروجی وضعیت. |
regex | String : عبارت منظمی که دستورات باید با آن تطبیق داده شوند تا فایل xml ریخته شود. اگر تهی باشد، تمام دستورات حذف خواهند شد. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
به طور مستقیم دستور را در دستگاه های از قبل تخصیص داده شده اجرا کنید.
پارامترها | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener باید مطلع شود |
reservedDevices | ERROR(/List ) ERROR(/List ) برای استفاده |
args | String : آرگومان های فرمان |
برمی گرداند | |
---|---|
long | شناسه فراخوانی دستور برنامه ریزی شده. |
پرتاب می کند | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
به طور مستقیم یک دستگاه را اختصاص می دهد و یک فرمان را بدون افزودن آن به صف فرمان با استفاده از یک IInvocationContext
از قبل موجود اجرا می کند.
پارامترها | |
---|---|
context | IInvocationContext : یک IInvocationContext موجود. |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener باید مطلع شود |
args | String : آرگومان های فرمان |
برمی گرداند | |
---|---|
long |
پرتاب می کند | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
به طور مستقیم یک دستگاه را اختصاص می دهد و یک دستور را بدون افزودن آن به صف فرمان اجرا می کند.
پارامترها | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener باید مطلع شود |
args | String : آرگومان های فرمان |
برمی گرداند | |
---|---|
long | شناسه فراخوانی دستور برنامه ریزی شده. |
پرتاب می کند | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
CommandFileWatcher مناسب را برای این زمانبندی دریافت کنید
برمی گرداند | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
تعداد دستورات را در حالت اجرا برمیگرداند.
برمی گرداند | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
برمی گرداند | |
---|---|
CommandScheduler.HostState |
getInvocationInfo
public String getInvocationInfo (int invocationId)
اطلاعات یک invocation bu را که شناسه فراخوانی را مشخص می کند، برگردانید.
پارامترها | |
---|---|
invocationId | int : شناسه ردیابی فراخوانی. |
برمی گرداند | |
---|---|
String | یک String حاوی اطلاعات مربوط به فراخوانی. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
کد خطای آخرین فراخوانی که اجرا شد را برگردانید. اگر هنوز فراخوانی اجرا نشده است، 0 را برگردانید (بدون خطایی).
برمی گرداند | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Throwable
از آخرین فراخوانی که اجرا شد، برگردانید. اگر هیچ قابل پرتابی در دسترس نباشد، پوچ را برگردانید.
برمی گرداند | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
تعداد دستورات را در حالت آماده در صف برمی گرداند.
برمی گرداند | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
برمی گرداند | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
اگر دستگاه توسط یک رشته فراخوانی فعال استفاده شود، مقدار true را برمیگرداند.
پارامترها | |
---|---|
device | ITestDevice |
برمی گرداند | |
---|---|
boolean |
خاموش شدن است
public boolean isShuttingDown ()
برمی گرداند | |
---|---|
boolean |
notifyFileChanged
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 (boolean notifyStop)
سعی کنید برنامه زمانبندی فرمان را با ظرافت خاموش کنید.
پارامترها | |
---|---|
notifyStop | boolean : اگر درست باشد، فراخوانی خاموش شدن TF را مطلع می کند. |
shutdownHard
public void shutdownHard (boolean killAdb)
سعی کنید به اجبار زمانبندی فرمان را خاموش کنید.
مشابه shutdown()
است، اما به صورت اختیاری اتصال adb را نیز از بین می برد، در تلاشی برای "الهام بخشیدن" فراخوانی های در حال انجام برای تکمیل سریعتر.
پارامترها | |
---|---|
killAdb | boolean |
shutdownHard
public void shutdownHard ()
سعی کنید به اجبار زمانبندی فرمان را خاموش کنید. مانند shutdownHard (درست است).
shutdownOnEmpty
public void shutdownOnEmpty ()
شبیه shutdown()
است، اما در عوض منتظر می ماند تا همه دستورات قبل از خروج اجرا شوند.
توجه داشته باشید که اگر هر دستوری در حالت حلقه باشد، زمانبندی هرگز خارج نخواهد شد.
شروع کنید
public void start ()
زمانبندی را از جمله راهاندازی لاگ، init DeviceManager
و غیره شروع میکند
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
یک فراخوان در حال اجرا را متوقف کنید.
پارامترها | |
---|---|
invocation | ITestInvocation |
برمی گرداند | |
---|---|
boolean | درست است اگر فراخوان متوقف شد، در غیر این صورت نادرست است |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
یک فراخوان در حال اجرا را با مشخص کردن شناسه آن متوقف کنید.
پارامترها | |
---|---|
invocationId | int : شناسه ردیابی فراخوانی. |
cause | String : علت توقف فراخوان. |
برمی گرداند | |
---|---|
boolean | درست است اگر فراخوان متوقف شد، در غیر این صورت نادرست است |
توقف برنامه ریزی
public void stopScheduling ()
برنامه ریزی و پذیرش تست های جدید را متوقف می کند اما Tradefed را متوقف نمی کند. این به معنای فعال کردن یک خاموشی دو مرحله ای است که در آن ابتدا تمام تست های در حال اجرا را تخلیه می کنیم، سپس فرآیند Tradefed را خاتمه می دهیم.
روش های محافظت شده
پاکسازی
protected void cleanUp ()
گزارشها را میبندد و هر گونه پاکسازی لازم دیگر را قبل از ترک کردن انجام میدهد.
در معرض تا تست های واحد می توانند مسخره کنند.
ایجاد پیکربندی
protected IConfiguration createConfiguration (String[] args)
پارامترها | |
---|---|
args | String |
برمی گرداند | |
---|---|
IConfiguration |
پرتاب می کند | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
برمی گرداند | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
تعیین می کند که آیا یک دستور داده شده یک اجرا خشک است یا خیر. اگر دستور خشک است، آن را تأیید کنید. اگر مشکلی در تنظیمات وجود داشته باشد، یک ConfigurationException ایجاد می کند.
پارامترها | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) برای گزارش رویدادها برای اعتبار سنجی اجرای خشک. |
config | IConfiguration |
برمی گرداند | |
---|---|
void | درست است اگر دستور یک اجرا خشک باشد، در غیر این صورت نادرست است. |
پرتاب می کند | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
پارامترها | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
برمی گرداند | |
---|---|
long |
پرتاب می کند | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
روش کارخانه برای دریافت ارجاع به IConfigurationFactory
برمی گرداند | |
---|---|
IConfigurationFactory | IConfigurationFactory برای استفاده |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
برمی گرداند | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
روش کارخانه برای دریافت ارجاع به IDeviceManager
برمی گرداند | |
---|---|
IDeviceManager | IDeviceManager برای استفاده |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
برمی گرداند | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
یک IKeyStoreClient
با استفاده از IKeyStoreFactory
که در IGlobalConfiguration
اعلام شده است واکشی میکند یا اگر تعریف نشده باشد، null میکند.
برمی گرداند | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
برمی گرداند | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
گزارش ddmlib را راه اندازی می کند.
در معرض تا تست های واحد می توانند مسخره کنند.
خاموش شدن است
protected boolean isShutdown ()
برمی گرداند | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
پارامترها | |
---|---|
manager | IDeviceManager |