CommandScheduler
public
class
CommandScheduler
extends Thread
implements
ICommandScheduler
| java.lang.Object | ||
| ↳ | java.lang.Thread | |
| ↳ | com.android.tradefed.command.CommandScheduler | |
أداة جدولة لتنفيذ أوامر TradeFederation على جميع الأجهزة المتاحة
سيحاول ترتيب أولويات تنفيذ الأوامر استنادًا إلى إجمالي عدد مرات تنفيذها ، مثلاً، سيتم منح الأولوية للأوامر التي يتم تنفيذها بشكل غير متكرر أو بسرعة على الأوامر التي يستغرق تنفيذها وقتًا طويلاً.
يتم تشغيلها إلى الأبد في الخلفية إلى أن يتم إيقافها.
ملخّص
طُرق وضع التصميم العامة | |
|---|---|
CommandScheduler()
تنشئ هذه الدالة |
|
الإجراءات العامة | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
تضيف هذه السمة أمرًا إلى أداة الجدولة. |
void
|
addCommandFile(String cmdFilePath, List<String> extraArgs)
يضيف هذا الإجراء جميع الأوامر من الملف المحدّد إلى أداة الجدولة |
void
|
await()
ينتظر هذا الإجراء حتى يبدأ المجدول في العمل، بما في ذلك انتظار اكتمال عملية النقل من الإصدار القديم من TensorFlow، إذا كان ذلك منطبقًا. |
static
TradefedDelegator
|
checkDelegation(String[] args)
أنشئ مفوِّضًا استنادًا إلى سطر الأوامر لمعرفة ما إذا كان علينا تفويض عملية التنفيذ. |
static
Map<ITestDevice, FreeDeviceState>
|
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(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
يخصّص الجهاز مباشرةً وينفّذ أمرًا بدون إضافته إلى قائمة انتظار الأوامر
باستخدام |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
يخصّص هذا الخيار جهازًا وينفّذ أمرًا مباشرةً بدون إضافته إلى قائمة انتظار الأوامر. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, 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)
تعرِض القيمة "صحيح" إذا كان الجهاز مستخدَمًا من خلال سلسلة استدعاء نشطة. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile, List<String> extraArgs)
|
void
|
removeAllCommands()
إزالة جميع الأوامر من أداة الجدولة |
void
|
run()
كتلة التنفيذ الرئيسية لسلسلة التعليمات هذه |
void
|
setClearcutClient(ClearcutClient client)
ضبط العميل لإعداد تقارير عن بيانات أداة الاختبار |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
boolean
|
shouldShutdownOnCmdfileError()
عرض القيمة "صحيح" إذا كنا بحاجة إلى إيقاف أداة الجدولة عند حدوث أخطاء في الأوامر |
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 قبل الاستخدام.
الإجراءات العامة
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
تضيف هذه السمة أمرًا إلى أداة الجدولة.
الأمر هو في الأساس مثيل من الإعدادات التي سيتم تنفيذها مع وسيطاتها المرتبطة.
إذا تم تحديد الوسيطة "--help"، سيتم إخراج نص المساعدة الخاص بالإعداد إلى stdout. بخلاف ذلك، ستتم إضافة الإعداد إلى قائمة الانتظار لتنفيذه.
| المعلَمات | |
|---|---|
args |
String: وسيطات الإعداد |
| المرتجعات | |
|---|---|
Pair<Boolean, Integer> |
زوج من القيم، القيمة الأولى هي قيمة منطقية true إذا تمت إضافة الأمر
بنجاح. القيمة الثانية هي المعرّف المعروف لتتبُّع الأوامر(قيمة غير سالبة) إذا تمت إضافة الأمر بنجاح، ويتم عرض 0 عند إضافة الأمر لجميع الأجهزة، أو -1 في الحالات الأخرى. |
| عمليات الطرح | |
|---|---|
ConfigurationException |
|
addCommandFile
public void addCommandFile (String cmdFilePath,
List<String> extraArgs)يضيف هذا الإجراء جميع الأوامر من الملف المحدّد إلى أداة الجدولة
| المعلَمات | |
|---|---|
cmdFilePath |
String: مسار نظام الملفات لملف الأمر |
extraArgs |
List: List من وسيطات String يتم إلحاقها بكل أمر تم تحليله من الملف. يمكن أن يكون فارغًا ولكن يجب ألا يكون قيمة فارغة. |
| عمليات الطرح | |
|---|---|
ConfigurationException |
|
await
public void await ()
ينتظر هذا الإجراء حتى يبدأ المجدول في العمل، بما في ذلك انتظار اكتمال عملية النقل من الإصدار القديم من TensorFlow، إذا كان ذلك منطبقًا.
| عمليات الطرح | |
|---|---|
InterruptedException |
|
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
أنشئ مفوِّضًا استنادًا إلى سطر الأوامر لمعرفة ما إذا كان علينا تفويض عملية التنفيذ.
| المعلَمات | |
|---|---|
args |
String |
| القيم المُعادة | |
|---|---|
TradefedDelegator |
|
| عمليات الطرح | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
createReleaseMap
public static Map<ITestDevice, FreeDeviceState> createReleaseMap (IInvocationContext context, Throwable e)
أنشِئ خريطة لحالة الأجهزة حتى يمكن إيقافها بشكل مناسب.
| المعلَمات | |
|---|---|
context |
IInvocationContext |
e |
Throwable |
| المرتجعات | |
|---|---|
Map<ITestDevice, FreeDeviceState> |
|
createSandbox
public ISandbox createSandbox ()
أنشئ ISandbox سيتم استخدامه لتنفيذ عملية الاستدعاء.
| المرتجعات | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
إخراج معلومات تصحيح الأخطاء المفصّلة بشأن حالة قائمة انتظار تنفيذ الأوامر
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter,
String regex)إخراج قائمة بالأوامر الحالية
| المعلَمات | |
|---|---|
printWriter |
PrintWriter: PrintWriter المطلوب إخراجه. |
regex |
String: التعبير العادي الذي يجب أن تتطابق معه الأوامر ليتم طباعتها. إذا كانت القيمة فارغة، سيتم عرض جميع الأوامر. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
تعرض هذه السمة قائمة بعمليات الاستدعاء الحالية.
| المعلَمات | |
|---|---|
printWriter |
PrintWriter: PrintWriter المطلوب إخراجه. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter,
String regex)تفريغ ملف XML الموسّع للأمر مع جميع قيم Option المحدّدة لجميع الأوامر الحالية
| المعلَمات | |
|---|---|
printWriter |
PrintWriter: 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 (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 |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
تنفيذ الأمر مباشرةً على الأجهزة التي تم تخصيصها مسبقًا
| المعلَمات | |
|---|---|
listener |
استبدِل ICommandScheduler.IScheduledInvocationListener بـ ICommandScheduler.IScheduledInvocationListener المطلوب إعلامك به. |
reservedDevices |
List: ERROR(/List المطلوب استخدامه |
args |
String: وسيطات الأمر |
| المرتجعات | |
|---|---|
long |
المعرّف الخاص باستدعاء الأمر المجدوَل. |
| عمليات الطرح | |
|---|---|
ConfigurationException |
|
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 |
|
getShutdownTimeout
public long getShutdownTimeout ()
| المرتجعات | |
|---|---|
long |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
تعرِض القيمة "صحيح" إذا كان الجهاز مستخدَمًا من خلال سلسلة استدعاء نشطة.
| المعلَمات | |
|---|---|
device |
ITestDevice |
| المرتجعات | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| المرتجعات | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
List<String> extraArgs)| المعلَمات | |
|---|---|
cmdFile |
File |
extraArgs |
List |
removeAllCommands
public void removeAllCommands ()
إزالة جميع الأوامر من أداة الجدولة
ضربة طويلة
public void run ()
كتلة التنفيذ الرئيسية لسلسلة التعليمات هذه
setClearcutClient
public void setClearcutClient (ClearcutClient client)
ضبط العميل لإعداد تقارير عن بيانات أداة الاختبار
| المعلَمات | |
|---|---|
client |
ClearcutClient |
setMaxPollTime
public void setMaxPollTime (long polling)
| المعلَمات | |
|---|---|
polling |
long |
setPrintSchedulingWarning
public void setPrintSchedulingWarning (boolean print)
| المعلَمات | |
|---|---|
print |
boolean |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
عرض القيمة "صحيح" إذا كنا بحاجة إلى إيقاف أداة الجدولة عند حدوث أخطاء في الأوامر
| المرتجعات | |
|---|---|
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 |
صحيح إذا تم إيقاف الاستدعاء، وخطأ في الحالات الأخرى |
stopScheduling
public void stopScheduling ()
يوقف جدولة الاختبارات الجديدة وقبولها، ولكنّه لا يوقف Tradefed. يهدف ذلك إلى إتاحة عملية إيقاف على خطوتين، حيث يتم أولاً إيقاف جميع الاختبارات الجارية، ثم إنهاء عملية Tradefed.
طُرق محمية
cleanUp
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, List<ITestDevice> reservedDevices, String[] args)
| المعلَمات | |
|---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
List |
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 المحدّد في ERROR(/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 |
shouldMarkReleased
protected boolean shouldMarkReleased ()
| المرتجعات | |
|---|---|
boolean |
|