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, extraArgs) addCommandFile (String cmdFilePath, extraArgs) يضيف كافة الأوامر من ملف معين إلى المجدول |
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, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) تنفيذ الأمر مباشرة على الأجهزة المخصصة بالفعل. |
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) يُرجع صحيحًا إذا تم استخدام الجهاز بواسطة سلسلة استدعاء نشطة. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () إزالة جميع الأوامر من المجدول |
void | run () كتلة التنفيذ الرئيسية لهذا الموضوع. |
void | setClearcutClient (ClearcutClient client) قم بتعيين العميل للإبلاغ عن بيانات الحزام |
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
.
ملاحظة: يجب استدعاء البداية قبل الاستخدام.
الأساليب العامة
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 : مسار نظام الملفات لملف comand |
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) الذي سيتم الإخراج إليه. |
تفريغCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
قم بتفريغ ملف xml الموسع للأمر مع كافة قيم Option
المحددة لجميع الأوامر الحالية.
حدود | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) لإخراج الحالة إليه. |
regex | String : التعبير العادي الذي يجب أن تتطابق معه الأوامر حتى يتم تفريغ ملف XML. إذا كانت فارغة، فسيتم تفريغ كافة الأوامر. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
تنفيذ الأمر مباشرة على الأجهزة المخصصة بالفعل.
حدود | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : سيتم إعلام ICommandScheduler.IScheduledInvocationListener |
reservedDevices | ERROR(/List ) 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 |
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,extraArgs)
حدود | |
---|---|
cmdFile | File |
extraArgs |
RemoveAllCommands
public void removeAllCommands ()
إزالة جميع الأوامر من المجدول
يجري
public void run ()
كتلة التنفيذ الرئيسية لهذا الموضوع.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
قم بتعيين العميل للإبلاغ عن بيانات الحزام
حدود | |
---|---|
client | ClearcutClient |
يجب أن تكون ShutdownOnCmdfileError
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 (صحيح).
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.
الأساليب المحمية
تنظيف
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 للاستخدام |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
جلب IKeyStoreClient
باستخدام IKeyStoreFactory
المُعلن عنه في IGlobalConfiguration
أو فارغ إذا لم يتم تعريف أي شيء.
عائدات | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
عائدات | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
تهيئة سجل ddmlib.
مكشوف حتى يمكن الاستهزاء باختبارات الوحدة.
isShutdown
protected boolean isShutdown ()
عائدات | |
---|---|
boolean |
أوامر معالجة جاهزة
protected void processReadyCommands (IDeviceManager manager)
حدود | |
---|---|
manager | IDeviceManager |