Penjadwal Perintah
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Objek | |
↳ | com.android.tradefed.command.CommandScheduler |
Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.
Akan mencoba memprioritaskan perintah untuk dijalankan berdasarkan jumlah total waktu eksekusinya. misalnya perintah yang berjalan jarang atau 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, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Menambahkan semua perintah dari file yang diberikan ke penjadwal |
void | await () Menunggu scheduler mulai berjalan, termasuk menunggu handover dari TF lama hingga selesai jika ada. |
static TradefedDelegator | checkDelegation (String[] args) Buat delegator berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Buat peta status perangkat agar dapat dirilis dengan tepat. |
ISandbox | createSandbox () Buat |
void | displayCommandQueue (PrintWriter printWriter) Keluarkan info debug terperinci tentang keadaan antrian eksekusi perintah. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Keluarkan daftar perintah saat ini. |
void | displayInvocationsInfo (PrintWriter printWriter) Menampilkan daftar doa saat ini. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Buang file xml yang diperluas untuk perintah dengan semua nilai |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Jalankan perintah secara langsung pada perangkat yang sudah dialokasikan. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah menggunakan |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah. |
CommandFileWatcher | getCommandFileWatcher () Dapatkan |
int | getExecutingCommandCount () Mengembalikan jumlah Perintah dalam status eksekusi. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Kembalikan informasi pada pemanggilan bu yang menentukan id pemanggilan. |
CommandRunner.ExitCode | getLastInvocationExitCode () Kembalikan kode kesalahan dari pemanggilan terakhir yang berjalan. |
Throwable | getLastInvocationThrowable () Kembalikan |
int | getReadyCommandCount () Mengembalikan jumlah Perintah dalam status siap dalam antrean. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Mengembalikan nilai true jika perangkat digunakan oleh utas pemanggilan aktif. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Hapus semua perintah dari penjadwal |
void | run () Blok eksekusi utama dari utas ini. |
void | setClearcutClient (ClearcutClient client) Atur klien untuk melaporkan data harness |
boolean | shouldShutdownOnCmdfileError () Kembalikan true jika kita perlu mematikan penjadwal pada kesalahan perintah |
void | shutdown (boolean notifyStop) Cobalah untuk mematikan penjadwal perintah dengan anggun. |
void | shutdownHard (boolean killAdb) Mencoba mematikan paksa penjadwal perintah. |
void | shutdownHard () Mencoba mematikan paksa penjadwal perintah. |
void | shutdownOnEmpty () Mirip dengan |
void | start () Mulai penjadwal termasuk pengaturan logging, init |
boolean | stopInvocation ( ITestInvocation invocation) Hentikan doa yang sedang berjalan. |
boolean | stopInvocation (int invocationId, String cause) Hentikan pemanggilan yang sedang berjalan dengan menentukan id-nya. |
Konstruktor publik
Penjadwal Perintah
public CommandScheduler ()
Membuat CommandScheduler
.
Catatan: mulai harus dipanggil sebelum digunakan.
Metode publik
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Menambahkan perintah ke penjadwal.
Perintah pada dasarnya adalah turunan dari konfigurasi untuk dijalankan dan argumen terkaitnya.
Jika argumen "--help" ditentukan, teks bantuan untuk konfigurasi akan ditampilkan ke stdout. Jika tidak, konfigurasi akan ditambahkan ke antrian untuk dijalankan.
Parameter | |
---|---|
args | String : argumen konfigurasi. |
Pengembalian | |
---|---|
Pair <Boolean, Integer> | Sepasang nilai, nilai pertama adalah Boolean true jika perintah berhasil ditambahkan. Nilai kedua adalah id pelacak perintah yang diketahui (nilai non-negatif) jika perintah berhasil ditambahkan, kembalikan 0 saat perintah ditambahkan untuk semua perangkat, jika tidak -1. |
Melempar | |
---|---|
ConfigurationException |
tambahkanCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Menambahkan semua perintah dari file yang diberikan ke penjadwal
Parameter | |
---|---|
cmdFilePath | String : jalur sistem berkas dari berkas perintah |
extraArgs | ERROR(/List) dari ERROR(/String) untuk ditambahkan ke setiap perintah yang diurai dari file. Boleh kosong tapi tidak boleh null. |
Melempar | |
---|---|
ConfigurationException |
menunggu
public void await ()
Menunggu scheduler mulai berjalan, termasuk menunggu handover dari TF lama hingga selesai jika ada.
checkDelegasi
public static TradefedDelegator checkDelegation (String[] args)
Buat delegator berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses.
Parameter | |
---|---|
args | String |
Pengembalian | |
---|---|
TradefedDelegator |
Melempar | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
buatReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis dengan tepat.
Parameter | |
---|---|
context | IInvocationContext |
e | Throwable |
Pengembalian | |
---|---|
createSandbox
public ISandbox createSandbox ()
Buat ISandbox
yang akan digunakan pemanggilan untuk dijalankan.
Pengembalian | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Keluarkan info debug terperinci tentang keadaan antrian eksekusi perintah.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Keluarkan daftar perintah saat ini.
Parameter | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) untuk di-output. |
regex | String : ekspresi reguler yang perintahnya harus dicocokkan agar dapat dicetak. Jika null, maka semua perintah akan dicetak. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Menampilkan daftar doa saat ini.
Parameter | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) untuk di-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 perintahnya harus dicocokkan agar file xml dibuang. Jika null, maka semua perintah akan dibuang. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Jalankan perintah secara langsung pada perangkat yang sudah dialokasikan.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener untuk diinformasikan |
reservedDevices | ERROR(/List ) ERROR(/List ) untuk digunakan |
args | String : argumen perintah |
Pengembalian | |
---|---|
long | Id pemanggilan dari perintah terjadwal. |
Melempar | |
---|---|
ConfigurationException |
execCommand
public long 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 sudah ada. |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener untuk diinformasikan |
args | String : argumen perintah |
Pengembalian | |
---|---|
long |
Melempar | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener untuk diinformasikan |
args | String : argumen perintah |
Pengembalian | |
---|---|
long | Id pemanggilan dari perintah terjadwal. |
Melempar | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Dapatkan CommandFileWatcher
yang sesuai untuk penjadwal ini
Pengembalian | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Mengembalikan jumlah Perintah dalam status eksekusi.
Pengembalian | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
Pengembalian | |
---|---|
CommandScheduler.HostState |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Kembalikan informasi pada pemanggilan bu yang menentukan id pemanggilan.
Parameter | |
---|---|
invocationId | int : id pelacakan dari doa. |
Pengembalian | |
---|---|
String | ERROR(/String) yang berisi informasi tentang pemanggilan. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Kembalikan kode kesalahan dari pemanggilan terakhir yang dijalankan. Kembalikan 0 (tidak ada kesalahan), jika belum ada pemanggilan yang dijalankan.
Pengembalian | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Kembalikan ERROR(/Throwable)
dari pemanggilan terakhir yang berjalan. Kembalikan nol, jika tidak tersedia lemparan.
Pengembalian | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Mengembalikan jumlah Perintah dalam status siap dalam antrean.
Pengembalian | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Pengembalian | |
---|---|
long |
isDeviceInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Mengembalikan nilai true jika perangkat digunakan oleh utas pemanggilan aktif.
Parameter | |
---|---|
device | ITestDevice |
Pengembalian | |
---|---|
boolean |
is ShuttingDown
public boolean isShuttingDown ()
Pengembalian | |
---|---|
boolean |
beri tahuFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile | File |
extraArgs |
hapusSemuaPerintah
public void removeAllCommands ()
Hapus semua perintah dari penjadwal
berlari
public void run ()
Blok eksekusi utama dari utas ini.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Atur klien untuk melaporkan data harness
Parameter | |
---|---|
client | ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Kembalikan true jika kita perlu mematikan penjadwal pada kesalahan perintah
Pengembalian | |
---|---|
boolean |
matikan
public void shutdown (boolean notifyStop)
Cobalah untuk mematikan penjadwal perintah dengan anggun.
Parameter | |
---|---|
notifyStop | boolean : jika benar, beri tahu pemanggilan penutupan TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Mencoba mematikan paksa penjadwal perintah.
Mirip dengan shutdown()
, tetapi juga secara opsional akan mematikan koneksi adb, dalam upaya untuk 'menginspirasi' pemanggilan yang sedang berlangsung agar selesai lebih cepat.
Parameter | |
---|---|
killAdb | boolean |
shutdownHard
public void shutdownHard ()
Mencoba mematikan paksa penjadwal perintah. Sama seperti shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Mirip dengan shutdown()
, tetapi akan menunggu semua perintah dieksekusi sebelum keluar.
stopInvokasi
public boolean stopInvocation (ITestInvocation invocation)
Hentikan doa yang sedang berjalan.
Parameter | |
---|---|
invocation | ITestInvocation |
Pengembalian | |
---|---|
boolean | benar jika pemanggilan dihentikan, salah jika sebaliknya |
stopInvokasi
public boolean stopInvocation (int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan id-nya.
Parameter | |
---|---|
invocationId | int : id pelacakan dari doa. |
cause | String : penyebab untuk menghentikan doa. |
Pengembalian | |
---|---|
boolean | benar jika pemanggilan dihentikan, salah jika sebaliknya |
Metode yang dilindungi
membersihkan
protected void cleanUp ()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.
Terkena sehingga pengujian unit dapat mengejek.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args | String |
Pengembalian | |
---|---|
IConfiguration |
Melempar | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Pengembalian | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Pengembalian | |
---|---|
long |
Melempar | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory
Pengembalian | |
---|---|
IConfigurationFactory | IConfigurationFactory untuk digunakan |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Pengembalian | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metode pabrik untuk mendapatkan referensi ke IDeviceManager
Pengembalian | |
---|---|
IDeviceManager | IDeviceManager untuk digunakan |
getFeatureServer
protected TradefedFeatureServer getFeatureServer ()
Pengembalian | |
---|---|
TradefedFeatureServer |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Mengambil IKeyStoreClient
menggunakan IKeyStoreFactory
yang dideklarasikan di IGlobalConfiguration
atau null jika tidak ada yang ditentukan.
Pengembalian | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Pengembalian | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Menginisialisasi log ddmlib.
Terkena sehingga pengujian unit dapat mengejek.
isShutdown
protected boolean isShutdown ()
Pengembalian | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager | IDeviceManager |