زمان‌بندی دستورات

public interface ICommandScheduler

com.android.tradefed.command.ICommandScheduler


یک زمانبند برای اجرای دستورات TradeFederation.

خلاصه

کلاس‌های تو در تو

interface ICommandScheduler.IScheduledInvocationListener

شنونده‌ای برای رویدادهای فراخوانی هنگام اتمام فراخوانی.

روش‌های عمومی

abstract Pair <Boolean, Integer> addCommand (String[] args)

یک دستور به زمانبند اضافه می‌کند.

abstract void addCommandFile (String cmdFile, extraArgs)

تمام دستورات فایل داده شده را به برنامه زمان‌بندی اضافه می‌کند.

abstract void await ()

منتظر می‌ماند تا زمانبند شروع به اجرا کند، از جمله در صورت لزوم، منتظر می‌ماند تا تحویل از TF قدیمی تکمیل شود.

abstract void displayCommandQueue (PrintWriter printWriter)

اطلاعات اشکال‌زدایی دقیق در مورد وضعیت صف اجرای دستور را نمایش می‌دهد.

abstract void displayCommandsInfo (PrintWriter printWriter, String regex)

لیستی از دستورات فعلی را نمایش می‌دهد.

abstract void displayInvocationsInfo (PrintWriter printWriter)

فهرستی از فراخوانی‌های فعلی را نمایش می‌دهد.

abstract void dumpCommandsXml (PrintWriter printWriter, String regex)

فایل xml بسط داده شده برای دستور را به همراه تمام مقادیر Option مشخص شده برای همه دستورات فعلی، کپی کنید.

abstract long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات با استفاده از یک IInvocationContext موجود اجرا می‌کند.

abstract long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args)

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات اجرا می‌کند.

abstract long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

اجرای مستقیم دستور روی دستگاه از قبل اختصاص داده شده.

abstract long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, devices, String[] args)

اجرای مستقیم دستور روی دستگاه‌های از قبل اختصاص داده شده.

abstract CommandFileWatcher getCommandFileWatcher ()

CommandFileWatcher مناسب را برای این زمانبند دریافت کنید

abstract int getExecutingCommandCount ()

تعداد دستورات در حال اجرا را برمی‌گرداند.

abstract String getInvocationInfo (int invocationId)

اطلاعات مربوط به یک فراخوانی را با مشخص کردن شناسه فراخوانی، برمی‌گرداند.

abstract CommandRunner.ExitCode getLastInvocationExitCode ()

کد خطای آخرین فراخوانی که اجرا شده است را برمی‌گرداند.

abstract Throwable getLastInvocationThrowable ()

مقدار Throwable از آخرین فراخوانی که اجرا شده است، برمی‌گرداند.

abstract int getReadyCommandCount ()

تعداد دستوراتی که در حالت آماده در صف هستند را برمی‌گرداند.

abstract boolean isDeviceInInvocationThread ( ITestDevice device)

اگر دستگاه توسط یک نخ فراخوانی فعال استفاده شود، مقدار true را برمی‌گرداند.

abstract void join ()

منتظر می‌ماند تا زمان‌بندی تکمیل شود.

abstract void join (long millis)

منتظر می‌ماند تا زمان‌بند (scheduler) تکمیل شود یا پس از مدت زمان مشخص شده بر حسب میلی‌ثانیه، زمان‌بندی به پایان برسد.

abstract void removeAllCommands ()

حذف تمام دستورات از برنامه زمانبندی

abstract void setClearcutClient (ClearcutClient client)

کلاینت را طوری تنظیم کنید که داده‌های مهار را گزارش دهد

default void setMaxPollTime (long polling)
default void setPrintSchedulingWarning (boolean print)
abstract boolean shouldShutdownOnCmdfileError ()

اگر نیاز به خاموش کردن برنامه‌ریز در صورت بروز خطا در یک دستور داشته باشیم، مقدار true را برمی‌گرداند

default void shutdown ()

تلاش برای خاموش کردنِ موقرانه‌ی زمان‌بندیِ فرمان.

abstract void shutdown (boolean notifyStop)

تلاش برای خاموش کردنِ موقرانه‌ی زمان‌بندیِ فرمان.

abstract void shutdownHard (boolean killAdb)

تلاش برای خاموش کردن اجباری زمانبند دستورات.

abstract void shutdownHard ()

تلاش برای خاموش کردن اجباری زمانبند دستورات.

abstract void shutdownOnEmpty ()

مشابه shutdown() است، اما در عوض منتظر می‌ماند تا تمام دستورات قبل از خروج اجرا شوند.

abstract void start ()

ICommandScheduler را اجرا کنید.

abstract boolean stopInvocation (int invocationId, String cause)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

default boolean stopInvocation (int invocationId)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

abstract boolean stopInvocation ( ITestInvocation invocation)

متوقف کردن یک فراخوانی در حال اجرا

default void stopScheduling ()

برنامه‌ریزی و پذیرش آزمایش‌های جدید را متوقف می‌کند اما Tradefed را متوقف نمی‌کند.

روش‌های عمومی

دستور add

public abstract Pair<Boolean, Integer> addCommand (String[] args)

یک دستور به زمانبند اضافه می‌کند.

یک دستور اساساً نمونه‌ای از یک پیکربندی برای اجرا و آرگومان‌های مرتبط با آن است.

اگر آرگومان "--help" مشخص شود، متن راهنمای پیکربندی در خروجی stdout نمایش داده می‌شود. در غیر این صورت، پیکربندی به صف اجرا اضافه می‌شود.

پارامترها
args String : آرگومان‌های پیکربندی.

بازگشت‌ها
Pair <Boolean, Integer> یک جفت مقدار، مقدار اول یک مقدار بولی true است اگر دستور با موفقیت اضافه شده باشد. مقدار دوم شناسه ردیاب دستور شناخته شده (مقدار غیر منفی) است اگر دستور با موفقیت اضافه شده باشد، وقتی دستور برای همه دستگاه‌ها اضافه شده باشد 0 و در غیر این صورت -1 را برمی‌گرداند.

پرتاب‌ها
ConfigurationException اگر دستور قابل تجزیه نبود

فایل فرمان را اضافه کنید

public abstract void addCommandFile (String cmdFile, 
                 extraArgs)

تمام دستورات فایل داده شده را به برنامه زمان‌بندی اضافه می‌کند.

پارامترها
cmdFile String : مسیر سیستم فایل فایل کامند

extraArgs : یک ERROR(/List) از آرگومان‌های String برای اضافه کردن به هر دستور تجزیه‌شده از فایل. می‌تواند خالی باشد اما نباید null باشد.

پرتاب‌ها
ConfigurationException اگر فایل فرمان قابل تجزیه نبود

همچنین ببینید:

منتظر

public abstract void await ()

منتظر می‌ماند تا زمانبند شروع به اجرا کند، از جمله در صورت لزوم، منتظر می‌ماند تا تحویل از TF قدیمی تکمیل شود.

صف فرمان نمایش

public abstract void displayCommandQueue (PrintWriter printWriter)

اطلاعات اشکال‌زدایی دقیق در مورد وضعیت صف اجرای دستور را نمایش می‌دهد.

نمایش اطلاعات دستورات

public abstract void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

لیستی از دستورات فعلی را نمایش می‌دهد.

پارامترها
printWriter PrintWriter : ERROR(/PrintWriter) که باید به آن خروجی داده شود.

regex String : عبارت منظمی که دستورات باید با آن مطابقت داشته باشند تا چاپ شوند. اگر تهی باشد، تمام دستورات چاپ می‌شوند.

نمایش اطلاعات فراخوانی‌ها

public abstract void displayInvocationsInfo (PrintWriter printWriter)

فهرستی از فراخوانی‌های فعلی را نمایش می‌دهد.

پارامترها
printWriter PrintWriter : ERROR(/PrintWriter) که باید به آن خروجی داده شود.

dumpCommandsXml

public abstract void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

فایل xml بسط داده شده برای دستور را به همراه تمام مقادیر Option مشخص شده برای همه دستورات فعلی، کپی کنید.

پارامترها
printWriter PrintWriter : ERROR(/PrintWriter) برای نمایش وضعیت.

regex String : عبارت منظمی که دستورات باید با آن مطابقت داشته باشند تا فایل xml کپی شود. اگر null باشد، تمام دستورات کپی می‌شوند.

دستور exec

public abstract long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات با استفاده از یک IInvocationContext موجود اجرا می‌کند.

پارامترها
context IInvocationContext : یک IInvocationContext موجود.

listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

args String : آرگومان‌های دستور

بازگشت‌ها
long

پرتاب‌ها
ConfigurationException اگر دستور نامعتبر بود
NoDeviceException اگر وسیله‌ای برای استفاده وجود ندارد

دستور exec

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات اجرا می‌کند.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException اگر دستور نامعتبر بود
NoDeviceException اگر وسیله‌ای برای استفاده وجود ندارد

دستور exec

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

اجرای مستقیم دستور روی دستگاه از قبل اختصاص داده شده.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

device ITestDevice : دستگاه ITestDevice مورد استفاده

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException اگر دستور نامعتبر بود

دستور exec

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                 devices, 
                String[] args)

اجرای مستقیم دستور روی دستگاه‌های از قبل اختصاص داده شده.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

devices : ERROR(/List ) برای استفاده

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException اگر دستور نامعتبر بود

دریافت‌کننده‌ی فرمانفایل

public abstract CommandFileWatcher getCommandFileWatcher ()

CommandFileWatcher مناسب را برای این زمانبند دریافت کنید

بازگشت‌ها
CommandFileWatcher

دریافت تعداد فرمان‌های در حال اجرا

public abstract int getExecutingCommandCount ()

تعداد دستورات در حال اجرا را برمی‌گرداند.

بازگشت‌ها
int

اطلاعات فراخوانی را دریافت کنید

public abstract String getInvocationInfo (int invocationId)

اطلاعات مربوط به یک فراخوانی را با مشخص کردن شناسه فراخوانی، برمی‌گرداند.

پارامترها
invocationId int : شناسه ردیابی فراخوانی.

بازگشت‌ها
String String حاوی اطلاعات مربوط به فراخوانی.

کد خروج آخرین فراخوانی (getLastInvocationExitCode)

public abstract CommandRunner.ExitCode getLastInvocationExitCode ()

کد خطای آخرین فراخوانی که اجرا شده است را برمی‌گرداند. اگر هنوز هیچ فراخوانی اجرا نشده باشد، مقدار 0 (بدون خطا) را برمی‌گرداند.

بازگشت‌ها
CommandRunner.ExitCode

getLastInvocationThrowable

public abstract Throwable getLastInvocationThrowable ()

تابع Throwable از آخرین فراخوانی که اجرا شده است، برمی‌گرداند. اگر هیچ Throwableای در دسترس نباشد، مقدار null را برمی‌گرداند.

بازگشت‌ها
Throwable

تعداد فرمان‌های آماده

public abstract int getReadyCommandCount ()

تعداد دستوراتی که در حالت آماده در صف هستند را برمی‌گرداند.

بازگشت‌ها
int

isDeviceInInvocationThread

public abstract boolean isDeviceInInvocationThread (ITestDevice device)

اگر دستگاه توسط یک نخ فراخوانی فعال استفاده شود، مقدار true را برمی‌گرداند.

پارامترها
device ITestDevice

بازگشت‌ها
boolean

پیوستن

public abstract void join ()

منتظر می‌ماند تا زمان‌بندی تکمیل شود.

همچنین ببینید:

پیوستن

public abstract void join (long millis)

منتظر می‌ماند تا زمان‌بند (scheduler) تکمیل شود یا پس از مدت زمان مشخص شده بر حسب میلی‌ثانیه، زمان‌بندی به پایان برسد.

پارامترها
millis long

همچنین ببینید:

حذف همه دستورات

public abstract void removeAllCommands ()

حذف تمام دستورات از برنامه زمانبندی

تنظیمClearcutClient

public abstract void setClearcutClient (ClearcutClient client)

کلاینت را طوری تنظیم کنید که داده‌های مهار را گزارش دهد

پارامترها
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

پارامترها
polling long

هشدار زمان‌بندی چاپ (setPrintSchedulingWarning)

public void setPrintSchedulingWarning (boolean print)

پارامترها
print boolean

خطای shouldShutdownOnCmdfileError

public abstract boolean shouldShutdownOnCmdfileError ()

اگر نیاز به خاموش کردن برنامه‌ریز در صورت بروز خطا در یک دستور داشته باشیم، مقدار true را برمی‌گرداند

بازگشت‌ها
boolean

خاموشی

public void shutdown ()

تلاش برای خاموش کردنِ موقرانه‌ی زمان‌بندیِ فرمان.

دستورات منتظر آزمایش را پاک می‌کند و درخواست می‌کند که تمام فراخوانی‌های در حال انجام به طور کامل خاتمه یابند.

پس از فراخوانی shutdown، حلقه اصلی زمانبند قبل از خروج کامل، منتظر می‌ماند تا تمام فراخوانی‌های در حال انجام کامل شوند.

خاموشی

public abstract void shutdown (boolean notifyStop)

تلاش برای خاموش کردنِ موقرانه‌ی زمان‌بندیِ فرمان.

پارامترها
notifyStop boolean : اگر درست باشد، فراخوانی‌های مربوط به خاموش شدن TF را اطلاع می‌دهد.

خاموش کردن هارد

public abstract void shutdownHard (boolean killAdb)

تلاش برای خاموش کردن اجباری زمانبند دستورات.

مشابه shutdown() است، اما به صورت اختیاری اتصال adb را نیز قطع می‌کند، در تلاشی برای «الهام‌بخشیدن» به فراخوانی‌های در حال انجام برای تکمیل سریع‌تر.

پارامترها
killAdb boolean

خاموش کردن هارد

public abstract void shutdownHard ()

تلاش برای خاموش کردن اجباری زمان‌بندی دستورات. مشابه shutdownHard(true).

خاموش کردن خالی

public abstract void shutdownOnEmpty ()

مشابه shutdown() است، اما در عوض منتظر می‌ماند تا تمام دستورات قبل از خروج اجرا شوند.

توجه داشته باشید که اگر هر دستوری در حالت حلقه باشد، زمانبند هرگز خارج نخواهد شد.

شروع

public abstract void start ()

ICommandScheduler را اجرا کنید.

باید قبل از فراخوانی سایر متدها فراخوانی شود.

تا زمانی که shutdown() فراخوانی شود، اجرا خواهد شد. به Thread.start() مراجعه کنید.

توقف فراخوانی

public abstract boolean stopInvocation (int invocationId, 
                String cause)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

پارامترها
invocationId int : شناسه ردیابی فراخوانی.

cause String : دلیل توقف فراخوانی.

بازگشت‌ها
boolean اگر فراخوانی متوقف شده باشد، true و در غیر این صورت false برمی‌گرداند.

پرتاب‌ها
UnsupportedOperationException اگر پیاده‌سازی از این پشتیبانی نمی‌کند

توقف فراخوانی

public boolean stopInvocation (int invocationId)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

پارامترها
invocationId int

بازگشت‌ها
boolean اگر فراخوانی متوقف شده باشد، true و در غیر این صورت false برمی‌گرداند.

پرتاب‌ها
UnsupportedOperationException اگر پیاده‌سازی از این پشتیبانی نمی‌کند

توقف فراخوانی

public abstract boolean stopInvocation (ITestInvocation invocation)

متوقف کردن یک فراخوانی در حال اجرا

پارامترها
invocation ITestInvocation

بازگشت‌ها
boolean اگر فراخوانی متوقف شده باشد، true و در غیر این صورت false برمی‌گرداند.

پرتاب‌ها
UnsupportedOperationException اگر پیاده‌سازی از این پشتیبانی نمی‌کند

توقف زمان‌بندی

public void stopScheduling ()

زمان‌بندی و پذیرش تست‌های جدید را متوقف می‌کند اما Tradefed را متوقف نمی‌کند. این به معنای فعال کردن یک خاموش‌سازی دو مرحله‌ای است که در آن ابتدا تمام تست‌های در حال اجرا را تخلیه می‌کنیم، سپس فرآیند Tradefed را خاتمه می‌دهیم.