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 () รับ |
int | getExecutingCommandCount () ส่งกลับจำนวนคำสั่งในสถานะดำเนินการ |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) ส่งคืนข้อมูลในการเรียกใช้ bu โดยระบุรหัสการเรียกใช้ |
CommandRunner.ExitCode | getLastInvocationExitCode () ส่งคืนรหัสข้อผิดพลาดของการเรียกใช้ครั้งล่าสุดที่เรียกใช้ |
Throwable | getLastInvocationThrowable () ส่งคืน |
int | getReadyCommandCount () ส่งกลับจำนวนคำสั่งในสถานะพร้อมในคิว |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) คืนค่าจริงหากอุปกรณ์ถูกใช้โดยเธรดการเรียกใช้ที่ใช้งานอยู่ |
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) หยุดการเรียกใช้โดยระบุรหัสของมัน |
ผู้สร้างสาธารณะ
CommandScheduler
public CommandScheduler ()
สร้าง CommandScheduler
หมายเหตุ: ต้องเรียก start ก่อนใช้งาน
วิธีการสาธารณะ
เพิ่มคำสั่ง
public Pair<Boolean, Integer> addCommand (String[] args)
เพิ่มคำสั่งไปยังตัวกำหนดตารางเวลา
คำสั่งคืออินสแตนซ์ของคอนฟิกูเรชันที่จะรันและอาร์กิวเมนต์ที่เกี่ยวข้อง
หากระบุอาร์กิวเมนต์ "--help" ข้อความช่วยเหลือสำหรับการกำหนดค่าจะถูกส่งออกไปยัง stdout มิฉะนั้น config จะถูกเพิ่มลงในคิวเพื่อรัน
พารามิเตอร์ | |
---|---|
args | String : อาร์กิวเมนต์การกำหนดค่า |
ส่งคืน | |
---|---|
Pair <Boolean, Integer> | คู่ของค่า ค่าแรกเป็นบูลีน true หากเพิ่มคำสั่งสำเร็จ ค่าที่สองคือ id ตัวติดตามคำสั่งที่รู้จัก (ค่าที่ไม่ใช่ค่าลบ) หากเพิ่มคำสั่งสำเร็จ ส่งคืน 0 เมื่อมีการเพิ่มคำสั่งสำหรับอุปกรณ์ทั้งหมด มิฉะนั้น -1 |
พ่น | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
เพิ่มคำสั่งทั้งหมดจากไฟล์ที่กำหนดไปยังตัวกำหนดตารางเวลา
พารามิเตอร์ | |
---|---|
cmdFilePath | String : เส้นทางระบบไฟล์ของไฟล์ comand |
extraArgs | ERROR(/List) ของ ERROR(/String) เพื่อต่อท้ายแต่ละคำสั่งที่แยกวิเคราะห์จากไฟล์ สามารถว่างเปล่าได้ แต่ไม่ควรเป็นโมฆะ |
พ่น | |
---|---|
ConfigurationException |
รอ
public void await ()
รอให้ตัวกำหนดตารางเวลาเริ่มทำงาน รวมถึงการรอการส่งมอบจาก TF เก่าให้เสร็จสิ้น หากมี
ตรวจสอบการมอบหมาย
public static TradefedDelegator checkDelegation (String[] args)
สร้างผู้รับมอบสิทธิ์ตามบรรทัดคำสั่งเพื่อดูว่าเราจำเป็นต้องมอบหมายการเรียกใช้หรือไม่
พารามิเตอร์ | |
---|---|
args | String |
ส่งคืน | |
---|---|
TradefedDelegator |
พ่น | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
สร้าง ReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
สร้างแผนที่สถานะอุปกรณ์เพื่อให้สามารถเผยแพร่ได้อย่างเหมาะสม
พารามิเตอร์ | |
---|---|
context | IInvocationContext |
e | Throwable |
ส่งคืน | |
---|---|
สร้างแซนด์บ็อกซ์
public ISandbox createSandbox ()
สร้าง ISandbox
ที่การเรียกใช้จะใช้ในการเรียกใช้
ส่งคืน | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
ส่งออกข้อมูลการดีบักโดยละเอียดเกี่ยวกับสถานะของคิวดำเนินการคำสั่ง
แสดงข้อมูลคำสั่ง
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 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 |
รับข้อมูลการร้องขอ
public String getInvocationInfo (int invocationId)
ส่งคืนข้อมูลในการเรียกใช้ bu โดยระบุรหัสการเรียกใช้
พารามิเตอร์ | |
---|---|
invocationId | int : รหัสการติดตามของการร้องขอ |
ส่งคืน | |
---|---|
String | ERROR(/String) ที่มีข้อมูลเกี่ยวกับการร้องขอ |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
ส่งคืนรหัสข้อผิดพลาดของการเรียกใช้ครั้งล่าสุดที่เรียกใช้ ส่งคืน 0 (ไม่มีข้อผิดพลาด) หากยังไม่มีการเรียกใช้
ส่งคืน | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
ส่งคืน ERROR(/Throwable)
จากการร้องขอล่าสุดที่รัน คืนค่า null ถ้าไม่มีการโยนทิ้ง
ส่งคืน | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
ส่งกลับจำนวนคำสั่งในสถานะพร้อมในคิว
ส่งคืน | |
---|---|
int |
รับShutdownTimeout
public long getShutdownTimeout ()
ส่งคืน | |
---|---|
long |
isDeviceInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
คืนค่าจริงหากอุปกรณ์ถูกใช้โดยเธรดการเรียกใช้ที่ใช้งานอยู่
พารามิเตอร์ | |
---|---|
device | ITestDevice |
ส่งคืน | |
---|---|
boolean |
แจ้งเปลี่ยนไฟล์แล้ว
public void notifyFileChanged (File cmdFile,extraArgs)
พารามิเตอร์ | |
---|---|
cmdFile | File |
extraArgs |
ลบคำสั่งทั้งหมด
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 |
ปิดฮาร์ด
public void shutdownHard (boolean killAdb)
พยายามบังคับปิดตัวกำหนดตารางเวลาคำสั่ง
คล้ายกับ shutdown()
แต่จะเลือกปิดการเชื่อมต่อ adb ด้วยเพื่อพยายาม 'สร้างแรงบันดาลใจ' การร้องขอที่กำลังดำเนินอยู่ให้เสร็จเร็วขึ้น
พารามิเตอร์ | |
---|---|
killAdb | boolean |
ปิดฮาร์ด
public void shutdownHard ()
พยายามบังคับปิดตัวกำหนดตารางเวลาคำสั่ง เช่นเดียวกับการปิดระบบฮาร์ด (จริง)
ปิดเมื่อว่างเปล่า
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 |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
พารามิเตอร์ | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
ส่งคืน | |
---|---|
long |
พ่น | |
---|---|
ConfigurationException |
รับ ConfigFactory
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
หรือค่า null หากไม่มีการกำหนด
ส่งคืน | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
ส่งคืน | |
---|---|
TestInvocationManagementServer |
เริ่มต้นการบันทึก
protected void initLogging ()
เริ่มต้นบันทึก ddmlib
เปิดเผยเพื่อให้การทดสอบหน่วยสามารถเยาะเย้ย
isShutdown
protected boolean isShutdown ()
ส่งคืน | |
---|---|
boolean |
กำลังปิดเครื่อง
protected boolean isShuttingDown ()
ส่งคืน | |
---|---|
boolean |
คำสั่งพร้อมประมวลผล
protected void processReadyCommands (IDeviceManager manager)
พารามิเตอร์ | |
---|---|
manager | IDeviceManager |