CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


เครื่องจัดตารางเวลาสำหรับเรียกใช้คำสั่ง TradeFederation ในอุปกรณ์ทั้งหมดที่มี

จะพยายามจัดลำดับความสำคัญของคำสั่งเพื่อเรียกใช้ตามจำนวนการดำเนินการทั้งหมดที่ทำงานอยู่ เช่น ระบบจะให้ความสำคัญกับคำสั่งที่เรียกใช้ไม่บ่อยหรือเร็วมากกว่าคำสั่งที่ทำงานเป็นเวลานาน

ทำงานอยู่เบื้องหลังตลอดจนกว่าจะปิดเครื่อง

สรุป

ชั้นเรียนที่ซ้อนกัน

enum CommandScheduler.HostState

แจกแจงสถานะต่างๆ ของโฮสต์

ช่างก่อสร้างสาธารณะ

CommandScheduler()

สร้าง CommandScheduler

วิธีการสาธารณะ

boolean addCommand(String[] args)

เพิ่มคำสั่งลงในเครื่องจัดตารางเวลา

void addCommandFile(String cmdFilePath, extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่ระบุลงในเครื่องจัดตารางเวลา

void await()

รอให้เครื่องจัดตารางเวลาเริ่มทำงาน รวมถึงรอการส่งมอบจาก TF เก่าให้เสร็จสมบูรณ์ หากมี

static TradefedDelegator checkDelegation(String[] args)

สร้างผู้มอบสิทธิ์ตามบรรทัดคำสั่งเพื่อดูว่าเราจำเป็นต้องมอบสิทธิ์การเรียกใช้หรือไม่

void completeHandover()

แจ้งเครื่องจัดตารางเวลาคำสั่งว่าลำดับการส่งมอบที่เริ่มต้นดำเนินการเสร็จสมบูรณ์แล้ว และ ควรเริ่มต้นเครื่องมือจัดการระยะไกลอีกครั้งบนพอร์ตเริ่มต้น

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 สำหรับคำสั่งปัจจุบันทั้งหมด

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

เรียกใช้คำสั่งโดยตรงในอุปกรณ์ที่จัดสรรแล้ว

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

จัดสรรอุปกรณ์และเรียกใช้คำสั่งโดยตรงโดยไม่ต้องเพิ่มลงในคิวคำสั่ง โดยใช้ IInvocationContext ที่มีอยู่แล้ว

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

จัดสรรอุปกรณ์และเรียกใช้คำสั่งโดยตรงโดยไม่ต้องเพิ่มลงในคิวคำสั่ง

CommandFileWatcher getCommandFileWatcher()

รับ CommandFileWatcher ที่เหมาะสมสำหรับเครื่องจัดตารางเวลานี้

int getExecutingCommandCount()

แสดงผลจำนวนคำสั่งในสถานะปฏิบัติการ

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

แสดงผลข้อมูลเกี่ยวกับรหัสการเรียกใช้ที่ระบุรหัสการเรียกใช้

CommandRunner.ExitCode getLastInvocationExitCode()

แสดงรหัสข้อผิดพลาดของการเรียกใช้ล่าสุดที่เรียกใช้

Throwable getLastInvocationThrowable()

แสดงผล Throwable จากการเรียกใช้ล่าสุดที่เรียกใช้

int getReadyCommandCount()

แสดงผลจำนวนคำสั่งในสถานะพร้อมในคิว

long getShutdownTimeout()
void handoverInitiationComplete()

แจ้งเครื่องจัดตารางเวลาคำสั่งว่าส่งการแลกเปลี่ยนอุปกรณ์และคำสั่งที่ใช้งานอยู่ครั้งแรก เสร็จสมบูรณ์ และสามารถเริ่มกำหนดเวลาการดำเนินการ

boolean handoverShutdown(int handoverPort)

เริ่มต้น shutdown() และส่งไปยังกระบวนการอื่นที่มีการแลกเปลี่ยนในโฮสต์เดียวกันนี้

void notifyFileChanged(File cmdFile, extraArgs)
void removeAllCommands()

นำคำสั่งทั้งหมดออกจากเครื่องจัดตารางเวลา

void run()

บล็อกการดำเนินการหลักของเทรดนี้

void setClearcutClient(ClearcutClient client)

ตั้งค่าให้ไคลเอ็นต์รายงานข้อมูลการใช้ประโยชน์จาก

boolean shouldShutdownOnCmdfileError()

แสดงค่า "จริง" หากเราต้องปิดเครื่องจัดตารางเวลาเมื่อมีข้อผิดพลาดด้านคำสั่ง

void shutdown()

ลองปิดเครื่องจัดตารางเวลาคำสั่งอย่างระมัดระวัง

void shutdownHard(boolean killAdb)

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง

void shutdownHard()

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง

void shutdownOnEmpty()

คล้ายกับ shutdown() แต่จะรอให้มีการเรียกใช้คำสั่งทั้งหมดแทน ก่อนที่จะออก

void start()

เริ่มเครื่องจัดตารางเวลา รวมถึงการตั้งค่าการบันทึก, init of DeviceManager ฯลฯ

boolean stopInvocation(ITestInvocation invocation)

หยุดการเรียกใช้ที่ทำงานอยู่

boolean stopInvocation(int invocationId, String cause)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

วิธีการป้องกัน

void cleanUp()

ปิดบันทึกและทำการล้างข้อมูลอื่นๆ ที่จำเป็นก่อนที่เราจะออก

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
IConfigurationFactory getConfigFactory()

วิธีการจากโรงงานสำหรับการรับการอ้างอิง IConfigurationFactory

IDeviceManager getDeviceManager()

วิธีการจากโรงงานสำหรับการรับการอ้างอิง IDeviceManager

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

ดึงข้อมูล IKeyStoreClient โดยใช้ IKeyStoreFactory ที่ประกาศเป็น IGlobalConfiguration หรือ Null หากไม่ได้กำหนดไว้

void initLogging()

เริ่มต้นบันทึก ddmlib

boolean isShutdown()
boolean isShuttingDown()
void processReadyCommands(IDeviceManager manager)
void waitForAllInvocationThreads()

รอจนกว่าชุดข้อความการเรียกใช้ทั้งหมดจะเสร็จสิ้น

ช่างก่อสร้างสาธารณะ

CommandScheduler

public CommandScheduler ()

สร้าง CommandScheduler

หมายเหตุ: ต้องเรียกใช้ก่อนการใช้งาน

วิธีการสาธารณะ

เพิ่มคำสั่ง

public boolean addCommand (String[] args)

เพิ่มคำสั่งลงในเครื่องจัดตารางเวลา

โดยพื้นฐานแล้ว คำสั่งเป็นอินสแตนซ์ของการกำหนดค่าที่จะเรียกใช้และอาร์กิวเมนต์ที่เกี่ยวข้อง

หาก "--help" มีการระบุข้อความช่วยเหลือสำหรับ การกำหนดค่าจะเอาต์พุตเป็น stdout ไม่เช่นนั้น ระบบจะเพิ่มการกำหนดค่าลงในคิวเพื่อ วิ่งได้

พารามิเตอร์
args String: อาร์กิวเมนต์ config

คิกรีเทิร์น
boolean true หากเพิ่มคำสั่งเรียบร้อยแล้ว

การขว้าง
ConfigurationException

เพิ่มคำสั่งไฟล์

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่ระบุลงในเครื่องจัดตารางเวลา

พารามิเตอร์
cmdFilePath String: เส้นทางระบบไฟล์ของไฟล์คำสั่ง

extraArgs : ERROR(/List) จาก String อาร์กิวเมนต์ที่จะต่อท้ายแต่ละคำสั่งที่แยกวิเคราะห์แล้ว จากไฟล์ เว้นว่างได้แต่ไม่ควรเป็นค่าว่าง

การขว้าง
ConfigurationException

รอ

public void await ()

รอให้เครื่องจัดตารางเวลาเริ่มทำงาน รวมถึงรอการส่งมอบจาก TF เก่าให้เสร็จสมบูรณ์ หากมี

การมอบสิทธิ์การตรวจสอบ

public static TradefedDelegator checkDelegation (String[] args)

สร้างผู้มอบสิทธิ์ตามบรรทัดคำสั่งเพื่อดูว่าเราจำเป็นต้องมอบสิทธิ์การเรียกใช้หรือไม่

พารามิเตอร์
args String

คิกรีเทิร์น
TradefedDelegator

การขว้าง
ConfigurationException

แฮนด์โอเวอร์ที่สมบูรณ์

public void completeHandover ()

แจ้งเครื่องจัดตารางเวลาคำสั่งว่าลำดับการส่งมอบที่เริ่มต้นดำเนินการเสร็จสมบูรณ์แล้ว และ ควรเริ่มต้นเครื่องมือจัดการระยะไกลอีกครั้งบนพอร์ตเริ่มต้น

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 ที่จะถ่ายโอน หากเป็นค่าว่าง ระบบจะส่งออกคำสั่งทั้งหมด

คำสั่ง

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

เรียกใช้คำสั่งโดยตรงในอุปกรณ์ที่จัดสรรแล้ว

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับข้อมูล

device ITestDevice: ITestDevice ที่จะใช้

args String: อาร์กิวเมนต์คำสั่ง

การขว้าง
ConfigurationException

คำสั่ง

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

จัดสรรอุปกรณ์และเรียกใช้คำสั่งโดยตรงโดยไม่ต้องเพิ่มลงในคิวคำสั่ง โดยใช้ IInvocationContext ที่มีอยู่แล้ว

พารามิเตอร์
context IInvocationContext: IInvocationContext ที่มีอยู่แล้ว

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับข้อมูล

args String: อาร์กิวเมนต์คำสั่ง

การขว้าง
ConfigurationException
NoDeviceException

คำสั่ง

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

จัดสรรอุปกรณ์และเรียกใช้คำสั่งโดยตรงโดยไม่ต้องเพิ่มลงในคิวคำสั่ง

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับข้อมูล

args String: อาร์กิวเมนต์คำสั่ง

การขว้าง
ConfigurationException
NoDeviceException

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 จากการเรียกใช้ล่าสุดที่เรียกใช้ แสดงผล Null หากไม่มีคำแนะนำ

คิกรีเทิร์น
Throwable

จำนวนคำสั่ง get Ready

public int getReadyCommandCount ()

แสดงผลจำนวนคำสั่งในสถานะพร้อมในคิว

คิกรีเทิร์น
int

getShutdownระยะหมดเวลา

public long getShutdownTimeout ()

คิกรีเทิร์น
long

การเริ่มต้นการส่งมอบเสร็จสมบูรณ์

public void handoverInitiationComplete ()

แจ้งเครื่องจัดตารางเวลาคำสั่งว่าส่งการแลกเปลี่ยนอุปกรณ์และคำสั่งที่ใช้งานอยู่ครั้งแรก เสร็จสมบูรณ์ และสามารถเริ่มกำหนดเวลาการดำเนินการ

การปิดการส่งมอบ

public boolean handoverShutdown (int handoverPort)

เริ่มต้น shutdown() และส่งไปยังกระบวนการอื่นที่มีการแลกเปลี่ยนในโฮสต์เดียวกันนี้

เครื่องจัดตารางเวลาจะแจ้งกระบวนการที่แลกเปลี่ยนจากระยะไกลให้ฟังในพอร์ตของอุปกรณ์ที่ว่างอยู่ เมื่อพร้อมให้บริการ

พารามิเตอร์
handoverPort int

คิกรีเทิร์น
boolean true หากการเริ่มต้นส่งมอบสำเร็จ false หรือไม่เช่นนั้น

AlertFileChanged แล้ว

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

พารามิเตอร์
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

นำคำสั่งทั้งหมดออกจากเครื่องจัดตารางเวลา

โฮมรัน

public void run ()

บล็อกการดำเนินการหลักของเทรดนี้

setClearcutClient

public void setClearcutClient (ClearcutClient client)

ตั้งค่าให้ไคลเอ็นต์รายงานข้อมูลการใช้ประโยชน์จาก

พารามิเตอร์
client ClearcutClient

ifShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

แสดงค่า "จริง" หากเราต้องปิดเครื่องจัดตารางเวลาเมื่อมีข้อผิดพลาดด้านคำสั่ง

คิกรีเทิร์น
boolean

ปิดเครื่อง

public void shutdown ()

ลองปิดเครื่องจัดตารางเวลาคำสั่งอย่างระมัดระวัง

ล้างคำสั่งที่รอทดสอบอยู่ และคำขอที่คำขอทั้งหมดกำลังดำเนินการอยู่ ปิดลงอย่างสง่างาม

หลังจากเรียกใช้การปิดระบบ ลูปหลักของเครื่องจัดตารางเวลาจะรอการเรียกใช้ทั้งหมดที่อยู่ระหว่างดำเนินการ ที่จะทำให้เสร็จก่อนที่จะออก โดยสมบูรณ์

ปิดฮาร์ดแวร์

public void shutdownHard (boolean killAdb)

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง

คล้ายกับ shutdown() แต่เลือกที่จะหยุดการเชื่อมต่อ adb ด้วย พยายามที่จะ "สร้างแรงบันดาลใจ" คำขอที่อยู่ระหว่างดำเนินการเพื่อให้ดำเนินการเสร็จสมบูรณ์ได้เร็วขึ้น

พารามิเตอร์
killAdb boolean

ปิดฮาร์ดแวร์

public void shutdownHard ()

พยายามบังคับให้เครื่องจัดตารางเวลาคำสั่งปิดระบบอย่างแรง เหมือนกับ DisableHard(true)

ปิดการทำงานเมื่อว่างเปล่า

public void shutdownOnEmpty ()

คล้ายกับ shutdown() แต่จะรอให้มีการเรียกใช้คำสั่งทั้งหมดแทน ก่อนที่จะออก

โปรดทราบว่าหากมีคำสั่งใดๆ อยู่ในโหมดวนซ้ำ เครื่องจัดตารางเวลาจะไม่ออกโดยเด็ดขาด

เริ่มต้น

public void start ()

เริ่มเครื่องจัดตารางเวลา รวมถึงการตั้งค่าการบันทึก, init of DeviceManager ฯลฯ

การเรียกใช้การหยุด

public boolean stopInvocation (ITestInvocation invocation)

หยุดการเรียกใช้ที่ทำงานอยู่

พารามิเตอร์
invocation ITestInvocation

คิกรีเทิร์น
boolean true หากการเรียกใช้หยุดลง เป็น false หากไม่เป็นเช่นนั้น

การเรียกใช้การหยุด

public boolean stopInvocation (int invocationId, 
                String cause)

หยุดการเรียกใช้ที่ทำงานอยู่โดยการระบุรหัส

พารามิเตอร์
invocationId int: รหัสติดตามของการเรียกใช้

cause String: สาเหตุของการหยุดการเรียกใช้

คิกรีเทิร์น
boolean true หากการเรียกใช้หยุดลง เป็น false หากไม่เป็นเช่นนั้น

วิธีการป้องกัน

ล้าง

protected void cleanUp ()

ปิดบันทึกและทำการล้างข้อมูลอื่นๆ ที่จำเป็นก่อนที่เราจะออก

เปิดเผยเพื่อให้ทดสอบ 1 หน่วยจำลองได้

createConfiguration

protected IConfiguration createConfiguration (String[] args)

พารามิเตอร์
args String

คิกรีเทิร์น
IConfiguration

การขว้าง
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

คิกรีเทิร์น
IInvocationContext

รับการกำหนดค่าจากโรงงาน

protected IConfigurationFactory getConfigFactory ()

วิธีการจากโรงงานสำหรับการรับการอ้างอิง IConfigurationFactory

คิกรีเทิร์น
IConfigurationFactory IConfigurationFactory ที่จะใช้

getDeviceManager

protected IDeviceManager getDeviceManager ()

วิธีการจากโรงงานสำหรับการรับการอ้างอิง IDeviceManager

คิกรีเทิร์น
IDeviceManager IDeviceManager ที่จะใช้

เซิร์ฟเวอร์ getFeature

protected TradefedFeatureServer getFeatureServer ()

คิกรีเทิร์น
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

คิกรีเทิร์น
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

ดึงข้อมูล IKeyStoreClient โดยใช้ IKeyStoreFactory ที่ประกาศเป็น IGlobalConfiguration หรือ Null หากไม่ได้กำหนดไว้

คิกรีเทิร์น
IKeyStoreClient IKeyStoreClient

การเริ่มต้นบันทึก

protected void initLogging ()

เริ่มต้นบันทึก ddmlib

เปิดเผยเพื่อให้ทดสอบ 1 หน่วยจำลองได้

กำลังปิด

protected boolean isShutdown ()

คิกรีเทิร์น
boolean

กำลังปิด

protected boolean isShuttingDown ()

คิกรีเทิร์น
boolean

คำสั่งพร้อมประมวลผล

protected void processReadyCommands (IDeviceManager manager)

พารามิเตอร์
manager IDeviceManager

โปรดรอForAllInvocationThreads

protected void waitForAllInvocationThreads ()

รอจนกว่าชุดข้อความการเรียกใช้ทั้งหมดจะเสร็จสิ้น