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

Class bertingkat

enum CommandScheduler.HostState

Enum berbagai status host

Konstruktor publik

CommandScheduler()

Membuat CommandScheduler.

Metode publik

boolean addCommand(String[] args)

Menambahkan perintah ke penjadwal.

void addCommandFile(String cmdFilePath, extraArgs)

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.

void completeHandover()

Memberi tahu penjadwal perintah bahwa urutan penyerahan yang dimulai sudah lengkap, dan itu harus menginisialisasi ulang pengelola jarak jauhnya pada porta default.

static createReleaseMap(IInvocationContext context, Throwable e)

Buat peta status perangkat agar dapat dirilis dengan tepat.

ISandbox createSandbox()

Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.

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 Option ditetapkan untuk semua perintah saat ini.

void execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Jalankan perintah secara langsung di perangkat yang sudah dialokasikan.

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

Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah menggunakan IInvocationContext yang sudah ada.

void 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 Throwable dari pemanggilan terakhir yang berjalan.

int getReadyCommandCount()

Menampilkan jumlah Perintah dalam status siap di antrean.

long getShutdownTimeout()
void handoverInitiationComplete()

Memberi tahu penjadwal perintah bahwa penyerahan awal pertukaran perangkat dan perintah yang digunakan selesai, dan dapat memulai penjadwalan operasi.

boolean handoverShutdown(int handoverPort)

Memulai shutdown() dan menyerahkan ke proses yang dikompromikan lainnya pada host yang sama ini.

void notifyFileChanged(File cmdFile, extraArgs)
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()

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 shutdown(), tetapi akan menunggu semua perintah dijalankan sebelum keluar.

void start()

Memulai penjadwal termasuk penyiapan logging, init DeviceManager, dll.

boolean stopInvocation(ITestInvocation invocation)

Menghentikan pemanggilan yang 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 IConfigurationFactory

IDeviceManager getDeviceManager()

Metode factory untuk mendapatkan referensi ke IDeviceManager

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

Mengambil IKeyStoreClient menggunakan IKeyStoreFactory dideklarasikan dalam IGlobalConfiguration atau null jika tidak ada yang ditentukan.

void initLogging()

Melakukan inisialisasi log ddmlib.

boolean isShutdown()
boolean isShuttingDown()
void processReadyCommands(IDeviceManager manager)
void waitForAllInvocationThreads()

Tunggu hingga semua thread pemanggilan selesai.

Konstruktor publik

Penjadwal Perintah

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 yang terkait dengannya.

Jika "--help" teks bantuan untuk konfigurasi akan ditampilkan di {i>stdout<i}. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk akan 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 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
ConfigurationException

serah terima selesai

public void completeHandover ()

Memberi tahu penjadwal perintah bahwa urutan penyerahan yang dimulai sudah lengkap, dan itu harus menginisialisasi ulang pengelola jarak jauhnya pada porta default.

createReleaseMap

public static  createReleaseMap (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 void execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Jalankan perintah secara langsung di perangkat yang sudah dialokasikan.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu

device ITestDevice: ITestDevice yang akan digunakan

args String: argumen perintah

Menampilkan
ConfigurationException

{i>execCommand<i}

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

Menampilkan
ConfigurationException
NoDeviceException

{i>execCommand<i}

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

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

getHostState

public CommandScheduler.HostState getHostState ()

Hasil
CommandScheduler.HostState

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

handoverInitiationComplete

public void handoverInitiationComplete ()

Memberi tahu penjadwal perintah bahwa penyerahan awal pertukaran perangkat dan perintah yang digunakan selesai, dan dapat memulai penjadwalan operasi.

serah terima Matikan

public boolean handoverShutdown (int handoverPort)

Memulai shutdown() dan menyerahkan ke proses yang dikompromikan lainnya pada host yang sama ini.

Penjadwal akan menginformasikan proses transfer jarak jauh yang memproses port perangkat yang dilepaskan saat tersedia.

Parameter
handoverPort int

Hasil
boolean true jika inisiasi serah terima berhasil, false sebaliknya

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

Mencoba mematikan penjadwal perintah dengan baik.

Menghapus perintah yang menunggu untuk diuji, dan meminta semua pemanggilan yang sedang berlangsung mematikannya dengan baik.

Setelah penonaktifan dipanggil, loop utama penjadwal akan menunggu semua panggilan yang sedang berlangsung untuk diselesaikan sebelum keluar sepenuhnya.

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.

start

public void start ()

Memulai penjadwal termasuk penyiapan logging, init DeviceManager, dll.

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

cause String: penyebab menghentikan pemanggilan.

Hasil
boolean true jika panggilan dihentikan, false jika tidak

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

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metode factory untuk mendapatkan referensi ke IConfigurationFactory

Hasil
IConfigurationFactory IConfigurationFactory untuk digunakan

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metode factory untuk mendapatkan referensi ke IDeviceManager

Hasil
IDeviceManager IDeviceManager untuk digunakan

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Hasil
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Hasil
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Mengambil IKeyStoreClient menggunakan IKeyStoreFactory dideklarasikan dalam IGlobalConfiguration atau null jika tidak ada yang ditentukan.

Hasil
IKeyStoreClient KlienIKeyStore

initLogging

protected void initLogging ()

Melakukan inisialisasi log ddmlib.

Diekspos sehingga pengujian unit dapat meniru.

dimatikan

protected boolean isShutdown ()

Hasil
boolean

Mematikan

protected boolean isShuttingDown ()

Hasil
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Tunggu hingga semua thread pemanggilan selesai.