CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


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

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

ทำงานในพื้นหลังตลอดไปจนกว่าจะปิดตัวลง

สรุป

ผู้รับเหมาก่อสร้างสาธารณะ

CommandScheduler ()

สร้าง 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 ()

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

void displayCommandQueue (PrintWriter printWriter)

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

void displayCommandsInfo (PrintWriter printWriter, String regex)

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

void displayInvocationsInfo (PrintWriter printWriter)

แสดงรายการคำร้องขอปัจจุบัน

void dumpCommandsXml (PrintWriter printWriter, String regex)

ดัมพ์ไฟล์ xml ที่ขยายสำหรับคำสั่งโดยมีค่า Option ทั้งหมดที่ระบุไว้สำหรับคำสั่งปัจจุบันทั้งหมด

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

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

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

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

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

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

void start ()

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

boolean stopInvocation ( ITestInvocation invocation)

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

boolean stopInvocation (int invocationId, String cause)

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

void stopScheduling ()

หยุดการกำหนดเวลาและยอมรับการทดสอบใหม่ แต่ไม่หยุด Tradefed

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

void cleanUp ()

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

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

กำหนดว่าคำสั่งที่กำหนดเป็นแบบทดลองรันหรือไม่

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

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

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

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

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

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

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

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

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

ผู้รับเหมาก่อสร้างสาธารณะ

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

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

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

getHostOptions

protected IHostOptions getHostOptions ()

การส่งคืน
IHostOptions

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