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

วิธีการจากโรงงานสำหรับการอ้างอิงไปยัง 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

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

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

เพิ่มคำสั่ง

public boolean addCommand (String[] args)

เพิ่มคำสั่งให้กับตัวกำหนดเวลา

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

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

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

การส่งคืน
boolean true หากเพิ่มคำสั่งสำเร็จ

ขว้าง
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่กำหนดไปยังตัวกำหนดเวลา

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

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

การส่งคืน

สร้างแซนด์บ็อกซ์

public ISandbox createSandbox ()

สร้าง ISandbox ที่การเรียกใช้จะใช้ในการทำงาน

การส่งคืน
ISandbox

แสดงคำสั่งคิว

public void displayCommandQueue (PrintWriter printWriter)

ส่งออกข้อมูลการดีบักโดยละเอียดเกี่ยวกับสถานะของคิวการดำเนินการคำสั่ง

แสดงคำสั่งข้อมูล

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

ส่งออกรายการคำสั่งปัจจุบัน

พารามิเตอร์
printWriter PrintWriter : ERROR(/PrintWriter) ที่จะส่งออกไป

regex String : นิพจน์ทั่วไปที่ควรจับคู่คำสั่งเพื่อที่จะพิมพ์ หากเป็นค่าว่าง ระบบจะพิมพ์คำสั่งทั้งหมด

แสดงข้อมูลการร้องขอ

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

รับInvocationInfo

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

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

public void handoverInitiationComplete ()

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

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

public boolean handoverShutdown (int handoverPort)

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

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

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

การส่งคืน
boolean true หากการเริ่มต้นการส่งมอบสำเร็จ มิฉะนั้นจะ false

แจ้ง FileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

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

extraArgs

ลบคำสั่งทั้งหมด

public void removeAllCommands ()

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

วิ่ง

public void run ()

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

ตั้งค่าClearcutClient

public void setClearcutClient (ClearcutClient client)

ตั้งค่าไคลเอ็นต์ให้รายงานข้อมูลสายรัด

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

ควรShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

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

การส่งคืน
boolean

ปิดตัวลง

public void shutdown ()

พยายามปิดตัวกำหนดตารางเวลาคำสั่งอย่างสวยงาม

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

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

ปิดเครื่องอย่างหนัก

public void shutdownHard (boolean killAdb)

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

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

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

ปิดเครื่องอย่างหนัก

public void shutdownHard ()

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

ปิดระบบOnEmpty

public void shutdownOnEmpty ()

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

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

เริ่ม

public void start ()

เริ่มตัวกำหนดเวลารวมถึงการตั้งค่าการบันทึก เริ่มต้นของ DeviceManager เป็นต้น

หยุดการร้องขอ

public boolean stopInvocation (ITestInvocation invocation)

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

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

การส่งคืน
boolean เป็นจริงหากการร้องขอถูกหยุด มิฉะนั้นจะเป็นเท็จ

หยุดการร้องขอ

public boolean stopInvocation (int invocationId, 
                String cause)

หยุดการเรียกใช้งานโดยการระบุรหัส

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

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

การส่งคืน
boolean เป็นจริงหากการร้องขอถูกหยุด มิฉะนั้นจะเป็นเท็จ

วิธีการที่ได้รับการป้องกัน

ทำความสะอาด

protected void cleanUp ()

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

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

สร้างการกำหนดค่า

protected IConfiguration createConfiguration (String[] args)

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

การส่งคืน
IConfiguration

ขว้าง
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

การส่งคืน
IInvocationContext

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

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

การส่งคืน
IConfigurationFactory IConfigurationFactory ที่จะใช้

รับDeviceManager

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

initLogging

protected void initLogging ()

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

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

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

protected boolean isShutdown ()

การส่งคืน
boolean

กำลังปิดเครื่อง

protected boolean isShuttingDown ()

การส่งคืน
boolean

กระบวนการ ReadyCommands

protected void processReadyCommands (IDeviceManager manager)

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

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

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