CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.
Akan mencoba memprioritaskan perintah yang akan dijalankan berdasarkan total jumlah waktu eksekusi yang berjalan. Misalnya, perintah yang jarang atau cepat berjalan akan diprioritaskan daripada perintah yang berjalan lama.
Berjalan selamanya di latar belakang hingga dimatikan.
Ringkasan
Class bertingkat | |
---|---|
enum |
CommandScheduler.HostState
Enum dari berbagai status host |
Konstruktor publik | |
---|---|
CommandScheduler()
Membuat |
Metode publik | |
---|---|
boolean
|
addCommand(String[] args)
Menambahkan perintah ke penjadwal. |
void
|
addCommandFile(String cmdFilePath,
Menambahkan semua perintah dari file tertentu ke penjadwal |
void
|
await()
Menunggu penjadwal mulai berjalan, termasuk menunggu pengalihan dari TF lama selesai jika berlaku. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi. |
void
|
completeHandover()
Memberi tahu penjadwal perintah bahwa urutan handover yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang pengelola jarak jauhnya di port default. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis dengan tepat. |
ISandbox
|
createSandbox()
Buat |
void
|
displayCommandQueue(PrintWriter printWriter)
Menampilkan info debug mendetail tentang status antrean eksekusi perintah. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Menampilkan daftar perintah saat ini. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Buang file xml yang diperluas untuk perintah dengan semua
nilai |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Langsung jalankan perintah di perangkat yang telah dialokasikan. |
void
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah
menggunakan |
void
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Secara langsung mengalokasikan perangkat dan menjalankan perintah tanpa menambahkannya ke antrean perintah. |
CommandFileWatcher
|
getCommandFileWatcher()
Mendapatkan |
int
|
getExecutingCommandCount()
Menampilkan jumlah Perintah dalam status eksekusi. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Menampilkan kode error dari pemanggilan terakhir yang dijalankan. |
Throwable
|
getLastInvocationThrowable()
Menampilkan |
int
|
getReadyCommandCount()
Menampilkan jumlah Perintah dalam status siap di antrean. |
long
|
getShutdownTimeout()
|
void
|
handoverInitiationComplete()
Memberi tahu penjadwal perintah bahwa pertukaran handover awal perangkat dan perintah yang digunakan telah selesai, dan dapat mulai menjadwalkan operasi. |
boolean
|
handoverShutdown(int handoverPort)
Memulai |
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Menghapus semua perintah dari penjadwal |
void
|
run()
Blok eksekusi utama dari thread ini. |
void
|
setClearcutClient(ClearcutClient client)
Menetapkan klien untuk melaporkan data harness |
boolean
|
shouldShutdownOnCmdfileError()
Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah |
void
|
shutdown()
Mencoba menonaktifkan penjadwal perintah dengan tuntas. |
void
|
shutdownHard(boolean killAdb)
Mencoba menonaktifkan penjadwal perintah secara paksa. |
void
|
shutdownHard()
Mencoba menonaktifkan penjadwal perintah secara paksa. |
void
|
shutdownOnEmpty()
Mirip dengan |
void
|
start()
Memulai penjadwal termasuk menyiapkan logging, inisialisasi |
boolean
|
stopInvocation(ITestInvocation invocation)
Menghentikan pemanggilan yang sedang berjalan. |
boolean
|
stopInvocation(int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya. |
Metode yang dilindungi | |
---|---|
void
|
cleanUp()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar. |
IConfiguration
|
createConfiguration(String[] args)
|
IInvocationContext
|
createInvocationContext()
|
IConfigurationFactory
|
getConfigFactory()
Metode factory untuk mendapatkan referensi ke |
IDeviceManager
|
getDeviceManager()
Metode factory untuk mendapatkan referensi ke |
TradefedFeatureServer
|
getFeatureServer()
|
IHostOptions
|
getHostOptions()
|
IKeyStoreClient
|
getKeyStoreClient()
Mengambil |
void
|
initLogging()
Menginisialisasi log ddmlib. |
boolean
|
isShutdown()
|
boolean
|
isShuttingDown()
|
void
|
processReadyCommands(IDeviceManager manager)
|
void
|
waitForAllInvocationThreads()
Tunggu hingga semua thread pemanggilan selesai. |
Konstruktor publik
CommandScheduler
public CommandScheduler ()
Membuat CommandScheduler
.
Catatan: start harus dipanggil sebelum digunakan.
Metode publik
addCommand
public boolean addCommand (String[] args)
Menambahkan perintah ke penjadwal.
Perintah pada dasarnya adalah instance konfigurasi yang akan dijalankan dan argumen terkaitnya.
Jika argumen "--help" ditentukan, teks bantuan untuk konfigurasi akan ditampilkan ke stdout. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk dijalankan.
Parameter | |
---|---|
args |
String : argumen konfigurasi. |
Hasil | |
---|---|
boolean |
true jika perintah berhasil ditambahkan |
Menampilkan | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Menambahkan semua perintah dari file tertentu ke penjadwal
Parameter | |
---|---|
cmdFilePath |
String : jalur sistem file file perintah |
extraArgs |
: ERROR(/List) argumen String untuk ditambahkan ke setiap perintah yang diuraikan
dari file. Dapat kosong, tetapi tidak boleh null. |
Menampilkan | |
---|---|
ConfigurationException |
menunggu
public void await ()
Menunggu penjadwal mulai berjalan, termasuk menunggu penyelesaian pengalihan dari TF lama jika berlaku.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi.
Parameter | |
---|---|
args |
String |
Hasil | |
---|---|
TradefedDelegator |
Menampilkan | |
---|---|
ConfigurationException |
completeHandover
public void completeHandover ()
Memberi tahu penjadwal perintah bahwa urutan handover yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang pengelola jarak jauhnya di port default.
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis dengan tepat.
Parameter | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Hasil | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Buat ISandbox
yang akan digunakan pemanggilan untuk dijalankan.
Hasil | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Menampilkan info debug mendetail tentang status antrean eksekusi perintah.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Menampilkan daftar perintah saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) yang akan menghasilkan output. |
regex |
String : ekspresi reguler yang harus dicocokkan dengan perintah agar dapat
dicetak. Jika null, semua perintah akan dicetak.
|
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) yang akan menghasilkan output.
|
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Buang file xml yang diperluas untuk perintah dengan semua
nilai Option
yang ditentukan untuk semua perintah saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) untuk menampilkan status. |
regex |
String : ekspresi reguler yang harus dicocokkan dengan perintah agar
file XML di-dump. Jika null, semua perintah akan di-dump.
|
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Langsung jalankan perintah di perangkat yang telah dialokasikan.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
device |
ITestDevice : ITestDevice yang akan digunakan |
args |
String : argumen perintah |
Menampilkan | |
---|---|
ConfigurationException |
execCommand
public void execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah
menggunakan IInvocationContext
yang sudah ada.
Parameter | |
---|---|
context |
IInvocationContext : IInvocationContext yang ada. |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String : argumen perintah |
Menampilkan | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public void execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Secara langsung mengalokasikan perangkat dan menjalankan perintah tanpa menambahkannya ke antrean perintah.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String : argumen perintah |
Menampilkan | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Mendapatkan CommandFileWatcher
yang sesuai untuk penjadwal ini
Hasil | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Menampilkan jumlah Perintah dalam status eksekusi.
Hasil | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan.
Parameter | |
---|---|
invocationId |
int : ID pelacakan pemanggilan. |
Hasil | |
---|---|
String |
String yang berisi informasi tentang pemanggilan.
|
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Menampilkan kode error dari pemanggilan terakhir yang dijalankan. Menampilkan 0 (tidak ada error), jika belum ada pemanggilan yang dijalankan.
Hasil | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Menampilkan Throwable
dari pemanggilan terakhir yang dijalankan.
Menampilkan null, jika tidak ada throwable yang tersedia.
Hasil | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Menampilkan jumlah Perintah dalam status siap di antrean.
Hasil | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Hasil | |
---|---|
long |
handoverInitiationComplete
public void handoverInitiationComplete ()
Memberi tahu penjadwal perintah bahwa pertukaran handover awal perangkat dan perintah yang digunakan telah selesai, dan dapat mulai menjadwalkan operasi.
handoverShutdown
public boolean handoverShutdown (int handoverPort)
Memulai shutdown()
dan menyerahkan ke proses tradefed lain di host yang sama.
Penjadwal akan memberi tahu proses tradefed jarak jauh yang memproses port perangkat yang dibebaskan saat tersedia.
Parameter | |
---|---|
handoverPort |
int |
Hasil | |
---|---|
boolean |
true jika inisialisasi handover berhasil, false
jika tidak
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Menghapus semua perintah dari penjadwal
lari
public void run ()
Blok eksekusi utama dari thread ini.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Menetapkan klien untuk melaporkan data harness
Parameter | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah
Hasil | |
---|---|
boolean |
shutdown
public void shutdown ()
Mencoba menonaktifkan penjadwal perintah dengan tuntas.
Menghapus perintah yang menunggu untuk diuji, dan meminta agar semua pemanggilan yang sedang berlangsung dihentikan dengan baik.
Setelah shutdown dipanggil, loop utama penjadwal akan menunggu semua pemanggilan yang sedang berlangsung selesai sebelum keluar sepenuhnya.
shutdownHard
public void shutdownHard (boolean killAdb)
Mencoba menonaktifkan penjadwal perintah secara paksa.
Serupa dengan shutdown()
, tetapi juga akan menghentikan koneksi adb secara opsional, dalam
upaya untuk 'menginspirasi' pemanggilan yang sedang berlangsung agar selesai lebih cepat.
Parameter | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Mencoba menonaktifkan penjadwal perintah secara paksa. Sama seperti shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Mirip dengan shutdown()
, tetapi akan menunggu semua perintah dieksekusi
sebelum keluar.
Perhatikan bahwa jika ada perintah dalam mode loop, penjadwal tidak akan pernah keluar.
start
public void start ()
Memulai penjadwal termasuk menyiapkan logging, inisialisasi DeviceManager
, dll.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Menghentikan pemanggilan yang sedang berjalan.
Parameter | |
---|---|
invocation |
ITestInvocation |
Hasil | |
---|---|
boolean |
benar jika pemanggilan dihentikan, salah jika tidak |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya.
Parameter | |
---|---|
invocationId |
int : ID pelacakan pemanggilan. |
cause |
String : penyebab penghentian pemanggilan. |
Hasil | |
---|---|
boolean |
benar jika pemanggilan dihentikan, salah jika tidak |
Metode yang dilindungi
cleanUp
protected void cleanUp ()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.
Ditampilkan agar pengujian unit dapat mengejek.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args |
String |
Hasil | |
---|---|
IConfiguration |
Menampilkan | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Hasil | |
---|---|
IInvocationContext |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metode factory untuk mendapatkan referensi ke IConfigurationFactory
Hasil | |
---|---|
IConfigurationFactory |
IConfigurationFactory yang akan digunakan
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metode factory untuk mendapatkan referensi ke IDeviceManager
Hasil | |
---|---|
IDeviceManager |
IDeviceManager yang akan digunakan
|
getHostOptions
protected IHostOptions getHostOptions ()
Hasil | |
---|---|
IHostOptions |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Mengambil IKeyStoreClient
menggunakan IKeyStoreFactory
yang dideklarasikan di IGlobalConfiguration
atau null jika tidak ada yang ditentukan.
Hasil | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
initLogging
protected void initLogging ()
Menginisialisasi log ddmlib.
Ditampilkan agar pengujian unit dapat mengejek.
isShutdown
protected boolean isShutdown ()
Hasil | |
---|---|
boolean |
isShuttingDown
protected boolean isShuttingDown ()
Hasil | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |
waitForAllInvocationThreads
protected void waitForAllInvocationThreads ()
Tunggu hingga semua thread pemanggilan selesai.