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,
تُضيف جميع الأوامر من ملف معيّن إلى المخطِّط |
void
|
await()
ينتظر بدء تشغيل المخطِّط، بما في ذلك انتظار اكتمال عملية التسليم من عملية التحويل الناجحة القديمة إذا كان ذلك منطبقًا. |
static
TradefedDelegator
|
checkDelegation(String[] args)
يمكنك إنشاء مفوِّض استنادًا إلى سطر الأوامر لمعرفة ما إذا كنا بحاجة إلى تفويض التشغيل. |
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, ITestDevice device, String[] args)
تنفيذ الأمر مباشرةً على الجهاز الذي سبق أن تم تخصيصه |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
تنفيذ الأمر مباشرةً على الأجهزة التي تم تخصيصها |
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)
عرض معلومات عن طلب من خلال تحديد معرّف الطلب |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
عرض رمز الخطأ لآخر عملية استدعاء تم تنفيذها |
Throwable
|
getLastInvocationThrowable()
عرض |
int
|
getReadyCommandCount()
تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار". |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
تعرِض True إذا كان الجهاز مستخدَمًا من خلال سلسلة محادثات نشطة. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
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()
يبدأ المخطِّط، بما في ذلك إعداد التسجيل وبدء |
boolean
|
stopInvocation(ITestInvocation invocation)
إيقاف استدعاء قيد التشغيل. |
boolean
|
stopInvocation(int invocationId, String cause)
يمكنك إيقاف طلب قيد التنفيذ من خلال تحديد رقم تعريفه. |
void
|
stopScheduling()
يوقف هذا الخيار جدولة الاختبارات الجديدة وقبولها، ولكنّه لا يوقف Tradefed. |
وظائف الإنشاء العامة
Commandscheduler
public CommandScheduler ()
لإنشاء CommandScheduler
.
ملاحظة: يجب استدعاء start قبل الاستخدام.
الطرق العامة
إضافة Command
public Pair<Boolean, Integer> addCommand (String[] args)
إضافة أمر إلى أداة الجدولة.
الأمر هو في الأساس مثيل لإعداد سيتم تنفيذه وشقيقه الوسيطات.
في حال تحديد الوسيطة "--help"، سيتم إخراج نص المساعدة الخاص بالإعدادات إلى stdout. بخلاف ذلك، ستتم إضافة الإعداد إلى "قائمة الانتظار" لتشغيله.
المعلمات | |
---|---|
args |
String : وسيطات الإعداد |
المرتجعات | |
---|---|
Pair<Boolean, Integer> |
زوج من القيم، تكون القيمة الأولى هي true المنطقية إذا تمت إضافة الأمر بنجاح. القيمة الثانية هي معرّف تتبُّع الأمر المعروف(قيمة غير سالبة) إذا تمت إضافة
الأمر بنجاح، يتم عرض القيمة 0 عند إضافة الأمر لجميع الأجهزة، وإلا يتم عرض القيمة
-1. |
عمليات الرمي | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
تُضيف جميع الأوامر من ملف معيّن إلى المخطِّط
المعلمات | |
---|---|
cmdFilePath |
String : مسار نظام الملفات لملف الأوامر |
extraArgs |
: ERROR(/List) من وسيطات String لإضافتها إلى كل أمر تم تحليله
من الملف يمكن أن تكون فارغة ولكن يجب ألا تكون فارغة. |
عمليات الرمي | |
---|---|
ConfigurationException |
في انتظار
public void await ()
ينتظر بدء تشغيل المخطِّط، بما في ذلك انتظار اكتمال عملية التسليم من عملية التحويل الناجحة القديمة إذا كان ذلك منطبقًا.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
أنشئ مفوِّضًا استنادًا إلى سطر الأوامر لمعرفة ما إذا كنا بحاجة إلى تفويض عملية التشغيل.
المعلمات | |
---|---|
args |
String |
المرتجعات | |
---|---|
TradefedDelegator |
عمليات الرمي | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
أنشئ خريطة لحالة الأجهزة حتى يمكن إصدارها بشكل مناسب.
المعلمات | |
---|---|
context |
IInvocationContext |
e |
Throwable |
المرتجعات | |
---|---|
|
createSandbox
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 : التعبير العادي الذي يجب مطابقة الأوامر معه لكي تتم
طباعتها إذا كانت القيمة خالية، فستتم طباعة جميع الأوامر. |
معلومات 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, ITestDevice device, String[] args)
تنفيذ الأمر مباشرةً على الجهاز الذي سبق أن تم تخصيصه
المعلمات | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه |
device |
ITestDevice : ITestDevice المطلوب استخدامه |
args |
String : وسيطات الأوامر |
المرتجعات | |
---|---|
long |
معرّف الطلب للأمر المُجدوَل |
عمليات الرمي | |
---|---|
ConfigurationException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
تنفيذ الأمر مباشرةً على الأجهزة التي تم تخصيصها
المعلمات | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه |
reservedDevices |
: السمة 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 |
getInvocationInfo
public String getInvocationInfo (int invocationId)
عرض معلومات عن طلب من خلال تحديد معرّف الطلب
المعلمات | |
---|---|
invocationId |
int : رقم تعريف التتبّع لطلب التنفيذ |
المرتجعات | |
---|---|
String |
تمثّل هذه السمة String تحتوي على معلومات عن الاستدعاء. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
يعرض رمز الخطأ لآخر استدعاء تم تشغيله. عرض القيمة 0 (بدون خطأ) إذا لم يتم تنفيذ أيّ طلب حتى الآن
المرتجعات | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
عرض Throwable
من آخر عملية استدعاء تم تنفيذها
إرجاع "فارغ" (فارغ)، في حال عدم توفر أي قابل للرمي.
المرتجعات | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار".
المرتجعات | |
---|---|
int |
مهلة الحصول على إيقاف التشغيل
public long getShutdownTimeout ()
المرتجعات | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
تعرِض True إذا كان الجهاز مستخدَمًا من خلال سلسلة محادثات نشطة.
المعلمات | |
---|---|
device |
ITestDevice |
المرتجعات | |
---|---|
boolean |
isShuttingDown
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 |
shouldShutdownOnCmdfileError
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(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
يشبه الأمر shutdown()
، ولكن بدلاً من ذلك سينتظر تنفيذ كل الأوامر
قبل الخروج.
يُرجى العلم أنّه إذا كانت أي أوامر في وضع حلقة، لن يخرج المخطِّط مطلقًا.
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.
الطرق المحمية
تنظيف
protected void cleanUp ()
يتم إغلاق السجلات وتنفيذ أي عملية تنظيف أخرى ضرورية قبل إنهاء الجلسة.
تمّ الكشف عنها لكي تتمكّن اختبارات الوحدة من محاكاة البيانات.
createConfiguration
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 |
الحصول على إعدادات المصنع
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.
تمّ الكشف عنها لكي تتمكّن اختبارات الوحدة من محاكاة البيانات.
isShutdown
protected boolean isShutdown ()
المرتجعات | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
المعلمات | |
---|---|
manager |
IDeviceManager |