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 () รอให้ตัวกำหนดเวลาเริ่มทำงาน รวมถึงการรอการส่งมอบจาก TF เก่าให้เสร็จสิ้น หากมี |
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
หมายเหตุ: ต้องเรียก start ก่อนใช้งาน
วิธีการสาธารณะ
เพิ่มคำสั่ง
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 ()
รอให้ตัวกำหนดเวลาเริ่มทำงาน รวมถึงการรอการส่งมอบจาก TF เก่าให้เสร็จสิ้น หากมี
ตรวจสอบการมอบหมาย
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 |
การส่งคืน | |
---|---|
สร้างแซนด์บ็อกซ์
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 long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
รันคำสั่งโดยตรงบนอุปกรณ์ที่ได้รับการจัดสรรแล้ว
พารามิเตอร์ | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่ต้องแจ้งให้ทราบ |
reservedDevices | ERROR(/List ) ERROR(/List ) ใช้ |
args | String : อาร์กิวเมนต์คำสั่ง |
การส่งคืน | |
---|---|
long | ID การร้องขอของคำสั่งที่กำหนดเวลาไว้ |
ขว้าง | |
---|---|
ConfigurationException |
ดำเนินการคำสั่ง
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่งโดยใช้ IInvocationContext
ที่มีอยู่แล้ว
พารามิเตอร์ | |
---|---|
context | IInvocationContext : IInvocationContext ที่มีอยู่ |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่ต้องแจ้งให้ทราบ |
args | String : อาร์กิวเมนต์คำสั่ง |
การส่งคืน | |
---|---|
long |
ขว้าง | |
---|---|
ConfigurationException | |
NoDeviceException |
ดำเนินการคำสั่ง
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่ง
พารามิเตอร์ | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่ต้องแจ้งให้ทราบ |
args | String : อาร์กิวเมนต์คำสั่ง |
การส่งคืน | |
---|---|
long | ID การร้องขอของคำสั่งที่กำหนดเวลาไว้ |
ขว้าง | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
รับ CommandFileWatcher ที่เหมาะสมสำหรับตัวกำหนดเวลานี้
การส่งคืน | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
ส่งกลับจำนวนคำสั่งในสถานะดำเนินการ
การส่งคืน | |
---|---|
int |
รับ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 |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
คืนค่าเป็นจริงหากอุปกรณ์ถูกใช้โดยเธรดการร้องขอที่ใช้งานอยู่
พารามิเตอร์ | |
---|---|
device | ITestDevice |
การส่งคืน | |
---|---|
boolean |
กำลังปิดเครื่อง
public boolean isShuttingDown ()
การส่งคืน | |
---|---|
boolean |
แจ้ง 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 (boolean notifyStop)
พยายามปิดตัวกำหนดตารางเวลาคำสั่งอย่างสวยงาม
พารามิเตอร์ | |
---|---|
notifyStop | boolean : หากเป็นจริง แจ้งการร้องขอการปิดระบบ TF |
ปิดเครื่องอย่างหนัก
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 | เป็นจริงหากการร้องขอถูกหยุด มิฉะนั้นจะเป็นเท็จ |
หยุดการจัดกำหนดการ
public void stopScheduling ()
หยุดการกำหนดเวลาและยอมรับการทดสอบใหม่ แต่ไม่หยุด Tradefed มีจุดประสงค์เพื่อเปิดใช้งานการปิดระบบสองขั้นตอน โดยขั้นแรกเราจะระบายการทดสอบที่ทำงานอยู่ทั้งหมดก่อน จากนั้นจึงยุติกระบวนการ Tradefed
วิธีการที่ได้รับการป้องกัน
ทำความสะอาด
protected void cleanUp ()
ปิดบันทึกและทำการล้างข้อมูลที่จำเป็นอื่นๆ ก่อนที่เราจะออก
เปิดเผยเพื่อให้การทดสอบหน่วยสามารถเยาะเย้ยได้
สร้างการกำหนดค่า
protected IConfiguration createConfiguration (String[] args)
พารามิเตอร์ | |
---|---|
args | String |
การส่งคืน | |
---|---|
IConfiguration |
ขว้าง | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
การส่งคืน | |
---|---|
IInvocationContext |
การรายงาน dryRunCommand
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
กำหนดว่าคำสั่งที่กำหนดเป็นแบบทดลองรันหรือไม่ หากคำสั่งเป็นแบบทดลอง ให้ตรวจสอบความถูกต้อง หากมีปัญหาเกี่ยวกับการกำหนดค่า ระบบจะโยน ConfigurationException
พารามิเตอร์ | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) เพื่อรายงานเหตุการณ์สำหรับการตรวจสอบความถูกต้องของการทดลองเรียกใช้ |
config | IConfiguration |
การส่งคืน | |
---|---|
void | จริงหากคำสั่งเป็นแบบทดลอง มิฉะนั้นจะเป็นเท็จ |
ขว้าง | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
ดำเนินการคำสั่ง
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 ที่จะใช้ |
รับDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
การส่งคืน | |
---|---|
DeviceManagementGrpcServer |
รับDeviceManager
protected IDeviceManager getDeviceManager ()
วิธีการจากโรงงานสำหรับการอ้างอิงถึง IDeviceManager
การส่งคืน | |
---|---|
IDeviceManager | IDeviceManager ที่จะใช้ |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
การส่งคืน | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
ดึง IKeyStoreClient
โดยใช้ IKeyStoreFactory
ที่ประกาศใน IGlobalConfiguration
หรือ null หากไม่มีการกำหนดไว้
การส่งคืน | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
การส่งคืน | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
เริ่มต้นบันทึก ddmlib
เปิดเผยเพื่อให้การทดสอบหน่วยสามารถเยาะเย้ยได้
คือปิดเครื่อง
protected boolean isShutdown ()
การส่งคืน | |
---|---|
boolean |
กระบวนการ ReadyCommands
protected void processReadyCommands (IDeviceManager manager)
พารามิเตอร์ | |
---|---|
manager | IDeviceManager |