CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


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

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

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

สรุป

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

enum CommandScheduler.HostState

Enums ของสถานะต่างๆ ของโฮสต์  

ตัวสร้างแบบสาธารณะ

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()และส่งต่อไปยังกระบวนการ Tradefed อื่นในโฮสต์เดียวกันนี้

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

เริ่มตัวตั้งเวลา รวมถึงการตั้งค่าการบันทึก การสร้าง DeviceManager ฯลฯ

boolean stopInvocation(ITestInvocation invocation)

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

boolean stopInvocation(int invocationId, String cause)

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

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

void cleanUp()

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

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

วิธีการของ Factory สำหรับการอ้างอิง IConfigurationFactory

IDeviceManager getDeviceManager()

วิธีการของ Factory สำหรับการอ้างอิง 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

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

เมธอดสาธารณะ

addCommand

public boolean addCommand (String[] args)

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

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

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

พารามิเตอร์
args String: อาร์กิวเมนต์การกําหนดค่า

คิกรีเทิร์น
boolean true หากเพิ่มคําสั่งสําเร็จ

การโยน
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

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

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

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

การโยน
ConfigurationException

await

public void await ()

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

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

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

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

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

การโยน
ConfigurationException

completeHandover

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: นิพจน์ทั่วไปที่ควรจับคู่กับคำสั่งเพื่อพิมพ์ หากเป็นค่า Null ระบบจะพิมพ์คําสั่งทั้งหมด

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 หากเป็นค่า Null ระบบจะแสดงคำสั่งทั้งหมด

execCommand

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

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

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับการแจ้งเตือน

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

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

การโยน
ConfigurationException

execCommand

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

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

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

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener ที่จะได้รับการแจ้งเตือน

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

การโยน
ConfigurationException
NoDeviceException

execCommand

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

getReadyCommandCount

public int getReadyCommandCount ()

แสดงผลจํานวนคําสั่งที่อยู่ในสถานะพร้อมใช้งานในคิว

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

getShutdownTimeout

public long getShutdownTimeout ()

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

handoverInitiationComplete

public void handoverInitiationComplete ()

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

handoverShutdown

public boolean handoverShutdown (int handoverPort)

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

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

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

คิกรีเทิร์น
boolean true if handover initiation was successful, false otherwise

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

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

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

การปิดเครื่อง

public void shutdown ()

พยายามปิดตัวจัดตารางการเรียกใช้คำสั่งอย่างราบรื่น

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

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

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 เป็นจริงหากการเรียกใช้หยุดลงแล้ว เป็นเท็จหากไม่

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

cleanUp

protected void cleanUp ()

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

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

createConfiguration

protected IConfiguration createConfiguration (String[] args)

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

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

การโยน
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

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

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

วิธีการของ Factory สำหรับการอ้างอิง IConfigurationFactory

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

getDeviceManager

protected IDeviceManager getDeviceManager ()

วิธีการของ Factory สำหรับการอ้างอิง IDeviceManager

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

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

getHostOptions

protected IHostOptions getHostOptions ()

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

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

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

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

initLogging

protected void initLogging ()

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

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

isShutdown

protected boolean isShutdown ()

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

isShuttingDown

protected boolean isShuttingDown ()

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

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

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

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

รอจนกว่าการเรียกใช้เธรดทั้งหมดจะเสร็จสมบูรณ์