CommandScheduler

public class CommandScheduler
extends Thread implements ICommandScheduler

java.lang.Object
   ↳ java.lang.Thread
     ↳ com.android.tradefed.command.CommandScheduler


أداة جدولة لتنفيذ أوامر TradeFederation على جميع الأجهزة المتاحة

سيحاول ترتيب أولويات تنفيذ الأوامر استنادًا إلى إجمالي عدد مرات تنفيذها ، مثلاً، سيتم منح الأولوية للأوامر التي يتم تنفيذها بشكل غير متكرر أو بسرعة على الأوامر التي يستغرق تنفيذها وقتًا طويلاً.

يتم تشغيلها إلى الأبد في الخلفية إلى أن يتم إيقافها.

ملخّص

طُرق وضع التصميم العامة

CommandScheduler()

تنشئ هذه الدالة CommandScheduler.

الإجراءات العامة

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

تضيف هذه السمة أمرًا إلى أداة الجدولة.

void addCommandFile(String cmdFilePath, List<String> extraArgs)

يضيف هذا الإجراء جميع الأوامر من الملف المحدّد إلى أداة الجدولة

void await()

ينتظر هذا الإجراء حتى يبدأ المجدول في العمل، بما في ذلك انتظار اكتمال عملية النقل من الإصدار القديم من TensorFlow، إذا كان ذلك منطبقًا.

static TradefedDelegator checkDelegation(String[] args)

أنشئ مفوِّضًا استنادًا إلى سطر الأوامر لمعرفة ما إذا كان علينا تفويض عملية التنفيذ.

static Map<ITestDeviceFreeDeviceState> createReleaseMap(IInvocationContext context, Throwable e)

أنشِئ خريطة لحالة الأجهزة حتى يمكن إيقافها بشكل مناسب.

ISandbox createSandbox()

أنشئ ISandbox سيتم استخدامه لتنفيذ عملية الاستدعاء.

void displayCommandQueue(PrintWriter printWriter)

إخراج معلومات تصحيح الأخطاء المفصّلة بشأن حالة قائمة انتظار تنفيذ الأوامر

void displayCommandsInfo(PrintWriter printWriter, String regex)

إخراج قائمة بالأوامر الحالية

void displayInvocationsInfo(PrintWriter printWriter)

تعرض هذه السمة قائمة بعمليات الاستدعاء الحالية.

void dumpCommandsXml(PrintWriter printWriter, String regex)

تفريغ ملف XML الموسّع للأمر مع جميع قيم Option المحدّدة لجميع الأوامر الحالية

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

تنفيذ الأمر مباشرةً على الجهاز الذي تم تخصيصه مسبقًا

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

يخصّص الجهاز مباشرةً وينفّذ أمرًا بدون إضافته إلى قائمة انتظار الأوامر باستخدام IInvocationContext حالي.

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()

عرض قيمة Throwable من آخر عملية استدعاء تم تنفيذها

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()

هذه السمة مشابهة للسمة shutdown()، ولكنّها ستنتظر تنفيذ جميع الأوامر قبل الخروج.

void start()

يبدأ المجدول، بما في ذلك إعداد التسجيل وبدء DeviceManager وما إلى ذلك

boolean stopInvocation(ITestInvocation invocation)

إيقاف عملية استدعاء قيد التنفيذ

boolean stopInvocation(int invocationId, String cause)

إيقاف عملية استدعاء قيد التنفيذ من خلال تحديد رقم تعريفها

void stopScheduling()

يوقف جدولة الاختبارات الجديدة وقبولها، ولكنّه لا يوقف Tradefed.

طُرق محمية

void cleanUp()

يُغلِق السجلات ويجري أي عملية تنظيف أخرى ضرورية قبل الخروج.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
void dryRunCommandReporting(ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

تحدّد هذه السمة ما إذا كان الأمر المحدّد هو أمر تجريبي.

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

طريقة المصنع للحصول على مرجع إلى IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

طريقة المصنع للحصول على مرجع إلى IDeviceManager

TradefedFeatureServer getFeatureServer()
IHostOptions getHostOptions()
IKeyStoreClient getKeyStoreClient()

يجلب IKeyStoreClient باستخدام IKeyStoreFactory المحدّد في ERROR(/IGlobalConfiguration) أو القيمة null إذا لم يتم تحديد أي قيمة.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

تهيئة سجل ddmlib

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)
boolean shouldMarkReleased()

طُرق وضع التصميم العامة

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<ITestDeviceFreeDeviceState> createReleaseMap (IInvocationContext context, 
                Throwable e)

أنشِئ خريطة لحالة الأجهزة حتى يمكن إيقافها بشكل مناسب.

المعلَمات
context IInvocationContext

e Throwable

المرتجعات
Map<ITestDeviceFreeDeviceState>

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

getHostState

public CommandScheduler.HostState getHostState ()

المرتجعات
CommandScheduler.HostState

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()، ولكنّها ستنتظر تنفيذ جميع الأوامر قبل الخروج.

يُرجى العِلم أنّه إذا كانت أي أوامر في وضع التكرار، لن يخرج المجدول أبدًا.

البدء

public void start ()

يبدأ المجدول، بما في ذلك إعداد التسجيل وبدء DeviceManager وما إلى ذلك

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

getHostOptions

protected IHostOptions getHostOptions ()

المرتجعات
IHostOptions

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