CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


أداة جدولة لتشغيل أوامر TradeFederation على جميع الأجهزة المتاحة

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

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

ملخّص

وظائف الإنشاء العامة

CommandScheduler()

لإنشاء CommandScheduler.

الطرق العامة

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

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

void addCommandFile(String cmdFilePath, extraArgs)

تُضيف جميع الأوامر من ملف معيّن إلى المخطِّط

void await()

ينتظر بدء تشغيل المخطِّط، بما في ذلك انتظار اكتمال عملية التسليم من عملية التحويل الناجحة القديمة إذا كان ذلك منطبقًا.

static TradefedDelegator checkDelegation(String[] args)

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

static 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(ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)

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

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

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

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

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

CommandFileWatcher getCommandFileWatcher()

الحصول على مراقب ملفات الأوامر المناسب لجدول التشغيل هذا

int getExecutingCommandCount()

تعرِض هذه الدالة عدد الأوامر في حالة التنفيذ.

CommandScheduler.HostState getHostState()
String getInvocationInfo(int invocationId)

عرض معلومات عن طلب من خلال تحديد معرّف الطلب

CommandRunner.ExitCode getLastInvocationExitCode()

عرض رمز الخطأ لآخر عملية استدعاء تم تنفيذها

Throwable getLastInvocationThrowable()

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

int getReadyCommandCount()

تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار".

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

تعرِض True إذا كان الجهاز مستخدَمًا من خلال سلسلة محادثات نشطة.

boolean isShuttingDown()
void 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()

يشبه الأمر 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, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory()

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

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

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

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

تُستخدَم هذه الدالة لجلب IKeyStoreClient باستخدام IKeyStoreFactory المحدَّد في IGlobalConfiguration أو القيمة null إذا لم يتم تحديد أيّ منها.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

تبدأ عملية إعداد سجل ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

وظائف الإنشاء العامة

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, 
                 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 static  createReleaseMap (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

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 متاحًا

المرتجعات
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار".

المرتجعات
int

getShutdownTimeout

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

removeAllCommands

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

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

بدء

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, 
                 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

getHostOptions

protected IHostOptions getHostOptions ()

المرتجعات
IHostOptions

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