Penjadwal Perintah
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 untuk dijalankan berdasarkan total jumlah eksekusi yang berjalan baik. mis. yang jarang atau berjalan cepat akan diprioritaskan daripada perintah yang berjalan lama.
Berjalan selamanya di latar belakang hingga dimatikan.
Ringkasan
Konstruktor publik | |
---|---|
CommandScheduler()
Membuat |
Metode publik | |
---|---|
Pair<Boolean, Integer>
|
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 penyerahan dari TF lama selesai jika berlaku. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Buat pendelegasi berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis dengan tepat. |
ISandbox
|
createSandbox()
Buat |
void
|
displayCommandQueue(PrintWriter printWriter)
Menghasilkan info debug mendetail tentang status antrean eksekusi perintah. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Menghasilkan daftar perintah saat ini. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Membuang file xml yang diperluas untuk perintah dengan semua
Nilai |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Jalankan perintah secara langsung di perangkat yang sudah dialokasikan. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah
menggunakan |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah. |
CommandFileWatcher
|
getCommandFileWatcher()
Mendapatkan CommandFileWatcher yang sesuai untuk penjadwal ini |
int
|
getExecutingCommandCount()
Menampilkan jumlah Perintah dalam status eksekusi. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Menampilkan informasi tentangbu pemanggilan yang menentukan ID pemanggilan. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Menampilkan kode error dari panggilan terakhir yang berjalan. |
Throwable
|
getLastInvocationThrowable()
Menampilkan |
int
|
getReadyCommandCount()
Menampilkan jumlah Perintah dalam status siap di antrean. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Menampilkan true (benar) jika perangkat digunakan oleh thread pemanggilan aktif. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Hapus semua perintah dari penjadwal |
void
|
run()
Blok eksekusi utama dari thread ini. |
void
|
setClearcutClient(ClearcutClient client)
Menetapkan klien untuk melaporkan data memanfaatkan |
boolean
|
shouldShutdownOnCmdfileError()
Menampilkan true (benar) jika kita perlu mematikan penjadwal saat terjadi error perintah. |
void
|
shutdown(boolean notifyStop)
Mencoba mematikan penjadwal perintah dengan baik. |
void
|
shutdownHard(boolean killAdb)
Mencoba mematikan penjadwal perintah secara paksa. |
void
|
shutdownHard()
Mencoba mematikan penjadwal perintah secara paksa. |
void
|
shutdownOnEmpty()
Mirip dengan |
void
|
start()
Memulai penjadwal termasuk penyiapan logging, init |
boolean
|
stopInvocation(ITestInvocation invocation)
Menghentikan pemanggilan yang berjalan. |
boolean
|
stopInvocation(int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya. |
void
|
stopScheduling()
Menghentikan penjadwalan dan menerima pengujian baru, tetapi tidak menghentikan Tradefed. |
Konstruktor publik
Penjadwal Perintah
public CommandScheduler ()
Membuat CommandScheduler
.
Catatan: start harus dipanggil sebelum digunakan.
Metode publik
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Menambahkan perintah ke penjadwal.
Perintah pada dasarnya adalah sebuah {i>instance<i} dari konfigurasi yang akan dijalankan dan argumen.
Jika "--help" tertentu, teks bantuan untuk konfigurasi akan dimunculkan ke {i>stdout<i}. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk dijalankan.
Parameter | |
---|---|
args |
String : argumen konfigurasi. |
Hasil | |
---|---|
Pair<Boolean, Integer> |
Sepasang nilai, nilai pertama adalah true Boolean jika perintah ditambahkan
memulai proyek. Nilai kedua adalah id pelacak perintah yang diketahui(nilai non-negatif) jika
perintah berhasil ditambahkan, tampilkan 0 saat perintah ditambahkan untuk semua perangkat, jika tidak
-1. |
Menampilkan | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Menambahkan semua perintah dari file tertentu ke penjadwal
Parameter | |
---|---|
cmdFilePath |
String : jalur sistem file dari file perintah |
extraArgs |
: ERROR(/List) dari String argumen yang akan ditambahkan ke setiap perintah yang diuraikan
dari file. Boleh kosong namun tidak boleh nol. |
Menampilkan | |
---|---|
ConfigurationException |
menunggu
public void await ()
Menunggu penjadwal mulai berjalan, termasuk menunggu penyerahan dari TF lama selesai jika berlaku.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Buat pendelegasi berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi.
Parameter | |
---|---|
args |
String |
Hasil | |
---|---|
TradefedDelegator |
Menampilkan | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis dengan tepat.
Parameter | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Hasil | |
---|---|
|
buatSandbox
public ISandbox createSandbox ()
Buat ISandbox
yang akan digunakan pemanggilan untuk dijalankan.
Hasil | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Menghasilkan info debug mendetail tentang status antrean eksekusi perintah.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Menghasilkan daftar perintah saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) yang menjadi target output. |
regex |
String : ekspresi reguler yang harus dicocokkan dengan perintah agar
dicetak. Jika null, maka semua perintah akan dicetak. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) yang menjadi target output. |
{i>dumpCommandsXml<i}
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Membuang file xml yang diperluas untuk perintah dengan semua
Nilai Option
ditetapkan untuk semua perintah saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) untuk menghasilkan status. |
regex |
String : ekspresi reguler yang harus dicocokkan dengan perintah agar jenis
file xml yang akan dibuang. Jika null, maka semua perintah akan dibuang. |
{i>execCommand<i}
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Jalankan perintah secara langsung di perangkat yang sudah dialokasikan.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
reservedDevices |
: ERROR(/List yang akan digunakan |
args |
String : argumen perintah |
Hasil | |
---|---|
long |
ID panggilan perintah terjadwal. |
Menampilkan | |
---|---|
ConfigurationException |
{i>execCommand<i}
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah
menggunakan IInvocationContext
yang sudah ada.
Parameter | |
---|---|
context |
IInvocationContext : IInvocationContext yang sudah ada. |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String : argumen perintah |
Hasil | |
---|---|
long |
Menampilkan | |
---|---|
ConfigurationException |
|
NoDeviceException |
{i>execCommand<i}
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah.
Parameter | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String : argumen perintah |
Hasil | |
---|---|
long |
ID panggilan perintah terjadwal. |
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 tentangbu pemanggilan yang menentukan ID pemanggilan.
Parameter | |
---|---|
invocationId |
int : ID pelacakan panggilan. |
Hasil | |
---|---|
String |
String yang berisi informasi tentang panggilan. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Menampilkan kode error dari panggilan terakhir yang berjalan. Menampilkan 0 (tidak ada error), jika belum ada pemanggilan yang berjalan.
Hasil | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Menampilkan Throwable
dari pemanggilan terakhir yang berjalan.
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 |
isDeviceInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Menampilkan true (benar) jika perangkat digunakan oleh thread pemanggilan aktif.
Parameter | |
---|---|
device |
ITestDevice |
Hasil | |
---|---|
boolean |
Mematikan
public boolean isShuttingDown ()
Hasil | |
---|---|
boolean |
AlertsFileChanges
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Hapus 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 memanfaatkan
Parameter | |
---|---|
client |
ClearcutClient |
seharusnyaShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Menampilkan true (benar) jika kita perlu mematikan penjadwal saat terjadi error perintah.
Hasil | |
---|---|
boolean |
matikan
public void shutdown (boolean notifyStop)
Mencoba mematikan penjadwal perintah dengan baik.
Parameter | |
---|---|
notifyStop |
boolean : jika true (benar), memberi tahu panggilan penonaktifan TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Mencoba mematikan penjadwal perintah secara paksa.
Serupa dengan shutdown()
, tetapi juga akan secara opsional mematikan koneksi adb, dalam
berupaya untuk 'menginspirasi' pemanggilan yang sedang berlangsung agar
selesai lebih cepat.
Parameter | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Mencoba mematikan penjadwal perintah secara paksa. Sama seperti shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Mirip dengan shutdown()
, tetapi akan menunggu semua perintah dijalankan
sebelum keluar.
Perhatikan bahwa jika ada perintah dalam mode loop, penjadwal tidak akan pernah keluar.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Menghentikan pemanggilan yang berjalan.
Parameter | |
---|---|
invocation |
ITestInvocation |
Hasil | |
---|---|
boolean |
true jika panggilan dihentikan, false 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 menghentikan pemanggilan. |
Hasil | |
---|---|
boolean |
true jika panggilan dihentikan, false jika tidak |
stopScheduling
public void stopScheduling ()
Menghentikan penjadwalan dan menerima pengujian baru, tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk memungkinkan penonaktifan dua langkah, pertama-tama kita menghabiskan semua pengujian yang berjalan, lalu hentikan Tradefed {i>checkout<i}.
Metode yang dilindungi
pembersihan
protected void cleanUp ()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.
Diekspos sehingga pengujian unit dapat meniru.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args |
String |
Hasil | |
---|---|
IConfiguration |
Menampilkan | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Hasil | |
---|---|
IInvocationContext |
DryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Menentukan apakah perintah tertentu merupakan uji coba. Jika perintahnya merupakan uji coba, lakukan validasi. Jika ada masalah konfigurasi, tindakan ini akan menampilkan ConfigurationException.
Parameter | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) untuk melaporkan peristiwa untuk validasi uji coba. |
config |
IConfiguration |
Hasil | |
---|---|
void |
benar (true) jika perintahnya merupakan uji coba, salah (false) jika tidak. |
Menampilkan | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
{i>execCommand<i}
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Hasil | |
---|---|
long |
Menampilkan | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metode factory untuk mendapatkan referensi ke IConfigurationFactory
Hasil | |
---|---|
IConfigurationFactory |
IConfigurationFactory untuk digunakan |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Hasil | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metode factory untuk mendapatkan referensi ke IDeviceManager
Hasil | |
---|---|
IDeviceManager |
IDeviceManager untuk digunakan |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Mengambil IKeyStoreClient
menggunakan IKeyStoreFactory
yang dideklarasikan dalam IGlobalConfiguration
atau null jika tidak ada yang ditentukan.
Hasil | |
---|---|
IKeyStoreClient |
KlienIKeyStore |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Hasil | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Melakukan inisialisasi log ddmlib.
Diekspos sehingga pengujian unit dapat meniru.
dimatikan
protected boolean isShutdown ()
Hasil | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |