Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Flow Framework untuk Anotasi Java
Topik
@Activities
Anotasi ini dapat digunakan pada sebuah antarmuka untuk mendeklarasikan satu set jenis aktivitas. Setiap metode dalam antarmuka dijelaskan dengan anotasi ini merupakan jenis aktivitas. Antarmuka tidak dapat memiliki kedua anotasi @Workflow
dan @Activities
-
Parameter berikut dapat ditentukan pada anotasi ini:
activityNamePrefix
-
Menentukan prefiks nama jenis kegiatan dinyatakan dalam antarmuka. Jika diatur ke string kosong (yang merupakan default), nama antarmuka diikuti oleh '.' digunakan sebagai prefiks.
version
-
Menentukan versi default dari jenis aktivitas dinyatakan dalam antarmuka. Nilai default-nya adalah
1.0
. dataConverter
-
Menentukan jenis
DataConverter
untuk digunakan untuk membuat serial/deserialisasi data saat membuat tugas dari jenis aktivitas ini dan hasilnya. Atur keNullDataConverter
secara default, yang menunjukkan bahwaJsonDataConverter
harus digunakan.
@Activity
Anotasi ini dapat digunakan pada metode dalam sebuah antarmuka yang dianotasi dengan @Activities
.
Parameter berikut dapat ditentukan pada anotasi ini:
name
-
Menentukan nama jenis aktivitas. Defaultnya adalah string kosong, yang menunjukkan bahwa prefiks default dan nama metode aktivitas harus digunakan untuk menentukan nama tipe aktivitas (yang merupakan bentuk {prefiks} {nama}). Perhatikan bahwa ketika Anda menentukan nama dalam anotasi
@Activity
, kerangka kerja tidak akan secara otomatis menambahkan prefiks untuk itu. Anda bebas untuk menggunakan skema penamaan Anda sendiri. version
-
Menentukan versi dari jenis aktivitas. Ini menimpa versi default yang ditentukan dalam anotasi
@Activities
pada antarmuka yang memuatnya. Defaultnya adalah string kosong.
@ActivityRegistrationOptions
Menentukan pilihan pendaftaran dari jenis kegiatan. Anotasi ini dapat digunakan pada sebuah antarmuka yang dianotasi dengan @Activities
atau metode di dalamnya. Jika ditentukan di kedua tempat, maka anotasi yang digunakan pada metode ini berlaku.
Parameter berikut dapat ditentukan pada anotasi ini:
defaultTasklist
-
Menentukan daftar tugas default untuk didaftarkan dengan Amazon SWF untuk jenis kegiatan ini. Default ini dapat diganti ketika memanggil metode aktivitas pada klien yang dihasilkan menggunakan Parameter
ActivitySchedulingOptions
. Diatur keUSE_WORKER_TASK_LIST
secara default. Ini adalah nilai khusus yang menunjukkan bahwa daftar tugas yang digunakan oleh pekerja, yang melakukan pendaftaran, harus digunakan. defaultTaskScheduleToStartTimeoutSeconds
-
Tentukan defaultTaskScheduleToStartTimeout yang terdaftar dengan Amazon SWF untuk jenis kegiatan ini. Ini adalah waktu maksimum yang diizinkan untuk menunggu tugas jenis aktivitas ini sebelum ditugaskan ke pekerja. Lihat Referensi API Amazon Simple Workflow Service untuk lebih jelasnya.
defaultTaskHeartbeatTimeoutSeconds
-
Menentukan
defaultTaskHeartbeatTimeout
yang terdaftar dengan Amazon SWF untuk jenis kegiatan ini. Pekerja aktivitas harus memberikan detak jantung dalam durasi ini; jika tidak, tugas akan habis. Setel ke -1 secara default, yang merupakan nilai khusus yang menunjukkan batas waktu ini harus dinonaktifkan. Lihat Referensi API Amazon Simple Workflow Service untuk lebih jelasnya. defaultTaskStartToCloseTimeoutSeconds
-
Menentukan defaultTaskStartToCloseTimeout terdaftar dengan Amazon SWF untuk jenis kegiatan ini. Batas waktu ini menentukan waktu maksimum yang dapat diambil pekerja untuk memproses tugas aktivitas jenis ini. Lihat Referensi API Amazon Simple Workflow Service untuk lebih jelasnya.
defaultTaskScheduleToCloseTimeoutSeconds
-
Menentukan
defaultScheduleToCloseTimeout
yang terdaftar dengan Amazon SWF untuk jenis kegiatan ini. Batas waktu ini menentukan total durasi tugas dapat tetap dalam keadaan terbuka. Setel ke -1 secara default, yang merupakan nilai khusus yang menunjukkan batas waktu ini harus dinonaktifkan. Lihat Referensi API Amazon Simple Workflow Service untuk lebih jelasnya.
@Asynchronous
Ketika digunakan pada metode dalam logika koordinasi alur kerja, menunjukkan bahwa metode harus dijalankan secara asinkron. Panggilan ke metode akan segera kembali, tetapi eksekusi sebenarnya akan terjadi secara asinkron ketika semua parameter Promise<> yang diteruskan ke metode menjadi siap. Metode yang dianotasi dengan @Asynchronous harus memiliki tipe pengembalian Promise<> atau batal.
daemon
-
Menunjukkan apakah tugas yang dibuat untuk metode asinkron harus berupa tugas daemon.
False
secara default.
@Execute
Saat digunakan pada metode dalam antarmuka yang dianotasi dengan anotasi @Workflow
, mengidentifikasi titik masuk alur kerja.
penting
Hanya satu metode di antarmuka yang bisa dihias dengan @Execute
.
Parameter berikut dapat ditentukan pada anotasi ini:
name
-
Menentukan nama jenis alur kerja. Jika tidak diatur, nama default ke {prefiks}{nama}, di mana {prefiks} adalah nama antarmuka alur kerja diikuti oleh '.' dan {nama} adalah nama metode yang didekorasi dengan
@Execute
dalam alur kerja. version
-
Menentukan versi jenis alur kerja.
@ExponentialRetry
Ketika digunakan pada suatu kegiatan atau metode asinkronus, tetapkan kebijakan percobaan ulang eksponensial jika metode memunculkan pengecualian yang tidak tertangani. Upaya percobaan ulang dilakukan setelah periode back-off, yang dihitung dengan kekuatan jumlah upaya.
Parameter berikut dapat ditentukan pada anotasi ini:
intialRetryIntervalSeconds
-
Menentukan durasi menunggu sebelum upaya percobaan ulang pertama. Nilai ini seharusnya tidak lebih besar dari
maximumRetryIntervalSeconds
danretryExpirationSeconds
. maximumRetryIntervalSeconds
-
Menentukan durasi maksimum antara upaya percobaan ulang. Setelah tercapai, interval percobaan ulang dibatasi ke nilai ini. Atur ke -1 secara default, yang berarti durasi tak terbatas.
retryExpirationSeconds
-
Menentukan durasi setelah percobaan ulang eksponensial akan berhenti. Set ke -1 secara default, yang berarti tidak ada kedaluwarsa.
backoffCoefficient
-
Menentukan koefisien yang digunakan untuk menghitung interval percobaan ulang. Lihat Strategi Coba Kembali Eksponensial.
maximumAttempts
-
Menentukan jumlah upaya setelah percobaan ulang eksponensial akan berhenti. Set ke -1 secara default, yang berarti tidak ada batas pada jumlah upaya coba lagi.
exceptionsToRetry
-
Menentukan daftar jenis pengecualian yang harus memicu percobaan ulang. Pengecualian yang tidak tertangani dari jenis ini tidak akan menyebar lebih jauh dan metode akan dicoba lagi setelah interval percobaan ulang yang dihitung. Secara default, daftar berisi
Throwable
. excludeExceptions
-
Menentukan daftar jenis pengecualian yang seharusnya tidak memicu coba lagi. Pengecualian tidak tertangani jenis ini akan diizinkan untuk menyebarkan. Daftar ini kosong secara default.
@GetState
Ketika digunakan pada sebuah metode dalam sebuah antarmuka dianotasikan dengan anotasi @Workflow
, mengidentifikasi bahwa metode ini digunakan untuk mengambil status eksekusi alur kerja terbaru. Paling banyak ada satu metode dengan anotasi ini dalam sebuah antarmuka dengan anotasi @Workflow
. Metode dengan anotasi ini tidak boleh mengambil parameter apapun dan harus memiliki tipe pengembalian selain void
.
@ManualActivityCompletion
Anotasi ini dapat digunakan pada metode aktivitas untuk menunjukkan bahwa tugas aktivitas tidak harus diselesaikan ketika metode kembali. Tugas aktivitas tidak akan secara otomatis selesai dan akan perlu diselesaikan secara manual langsung menggunakan API Amazon SWF. Hal ini berguna untuk kasus penggunaan di mana tugas aktivitas didelegasikan ke beberapa sistem eksternal yang tidak otomatis atau memerlukan intervensi manusia untuk diselesaikan.
@Signal
Ketika digunakan pada sebuah metode dalam sebuah antarmuka dianotasikan dengan anotasi @Workflow
, mengidentifikasi sinyal yang dapat diterima oleh eksekusi dari jenis alur kerja dinyatakan oleh antarmuka. Penggunaan anotasi ini diperlukan untuk menentukan metode sinyal.
Parameter berikut dapat ditentukan pada anotasi ini:
name
-
Menentukan bagian nama dari nama sinyal. Jika tidak diatur, nama metode akan digunakan.
@SkipRegistration
Ketika digunakan pada sebuah antarmuka dianotasikan dengan anotasi @Workflow
, menunjukkan bahwa jenis alur kerja tidak harus terdaftar dengan Amazon SWF. Salah satu anotasi @WorkflowRegistrationOptions
dan @SkipRegistrationOptions
harus digunakan pada sebuah antarmuka yang dianotasi dengan @Workflow
, tapi tidak keduanya.
@Wait dan @NoWait
Anotasi ini dapat digunakan pada parameter tipe Promise<>
untuk menunjukkan apakah AWS Flow Framework untuk Java harus menunggu untuk itu untuk menjadi siap sebelum mengeksekusi metode. Secara default, parameter Promise<>
diteruskan ke metode @Asynchronous
harus menjadi siap sebelum eksekusi metode terjadi. Dalam skenario tertentu, hal ini diperlukan untuk menimpa perilaku default ini. Parameter Promise<>
dilewatkan ke @Asynchronous
dan dianotasi dengan @NoWait
tidak ditunggu.
Koleksi parameter (atau subclass dari) yang berisi janji, seperti List<Promise<Int>>
, harus dianotasi dengan anotasi @Wait
. Secara default, kerangka kerja tidak menunggu anggota koleksi.
@Workflow
Anotasi ini digunakan pada sebuah antarmuka untuk mendeklarasikan sebuah jenis alur Kerja. Sebuah antarmuka dihiasi dengan anotasi ini harus berisi tepat satu metode yang dihiasi dengan @Execute untuk mendeklarasikan titik masuk untuk alur kerja Anda.
catatan
Antarmuka tidak dapat memiliki kedua anotasi @Workflow
dan @Activities
dideklarasikan sekaligus; mereka saling eksklusif.
Parameter berikut dapat ditentukan pada anotasi ini:
dataConverter
-
Menentukan
DataConverter
untuk digunakan saat mengirim permintaan, dan menerima hasil, eksekusi alur kerja jenis alur kerja ini.Default-nya
NullDataConverter
yang pada gilirannya jatuh kembali keJsonDataConverter
untuk memproses semua permintaan dan respon data sebagai JavaScript Object Notation (JSON).
Contoh
import com.amazonaws.services.simpleworkflow.flow.annotations.Execute; import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow; import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions; @Workflow @WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600) public interface GreeterWorkflow { @Execute(version = "1.0") public void greet(); }
@WorkflowRegistrationOptions
Saat digunakan pada antarmuka yang dianotasi dengan @Workflow
, menyediakan pengaturan default yang digunakan oleh Amazon SWF saat mendaftarkan jenis alur kerja.
catatan
Entah @WorkflowRegistrationOptions
atau @SkipRegistrationOptions
harus digunakan pada sebuah antarmuka yang dianotasi dengan @Workflow
, tetapi tidak dapat menentukan keduanya.
Parameter berikut dapat ditentukan pada anotasi ini:
- Deskripsi
-
Deskripsi teks opsional dari jenis alur kerja.
defaultExecutionStartToCloseTimeoutSeconds
-
Menentukan
defaultExecutionStartToCloseTimeout
yang terdaftar dengan Amazon SWF untuk jenis alur kerja. Ini adalah total waktu yang dapat diselesaikan oleh eksekusi alur kerja jenis ini.Untuk informasi selengkapnya tentang timeout alur Kerja, lihat Tipe Batas Waktu Amazon SWF .
defaultTaskStartToCloseTimeoutSeconds
-
Menentukan
defaultTaskStartToCloseTimeout
yang terdaftar dengan Amazon SWF untuk jenis alur kerja. Ini menentukan waktu yang diperlukan untuk menyelesaikan tugas keputusan tunggal untuk eksekusi alur kerja jenis ini.Jika Anda tidak menentukan
defaultTaskStartToCloseTimeout
, defaultnya adalah 30 detik.Untuk informasi selengkapnya tentang timeout alur Kerja, lihat Tipe Batas Waktu Amazon SWF .
defaultTaskList
-
Daftar tugas default digunakan untuk tugas keputusan untuk eksekusi jenis alur kerja ini. Set default di sini dapat diganti dengan menggunakan
StartWorkflowOptions
saat memulai eksekusi alur kerja.Jika Anda tidak menentukan
defaultTaskList
, maka akan diatur keUSE_WORKER_TASK_LIST
secara default. Ini menunjukkan bahwa daftar tugas yang digunakan oleh pekerja yang melakukan pendaftaran alur kerja harus digunakan. defaultChildPolicy
-
Menentukan kebijakan yang akan digunakan untuk alur kerja anak jika eksekusi jenis ini dihentikan. Nilai default-nya adalah
ABANDON
. Kemungkinan nilai adalah:-
ABANDON
– Izinkan eksekusi alur kerja anak untuk terus berjalan -
TERMINATE
– Menghentikan eksekusi alur kerja anak -
REQUEST_CANCEL
– Meminta pembatalan eksekusi alur kerja anak
-