AWS Flow Framework untuk Anotasi Java - AWS Flow Framework untuk Java

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

@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 ke NullDataConverter secara default, yang menunjukkan bahwa JsonDataConverter 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 ke USE_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 dan retryExpirationSeconds.

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 ke JsonDataConverter 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 ke USE_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