AWS Flow Framework Konsep Dasar: Daftar Tugas dan Eksekusi Tugas - 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 Konsep Dasar: Daftar Tugas dan Eksekusi Tugas

Amazon SWF mengelola alur kerja dan tugas aktivitas dengan mempostingnya ke daftar bernama. Amazon SWF mempertahankan setidaknya dua daftar tugas, satu untuk pekerja alur kerja dan satu untuk pekerja aktivitas.

catatan

Anda dapat menentukan daftar tugas sebanyak yang Anda butuhkan, dengan pekerja berbeda yang ditugaskan ke setiap daftar. Tidak ada batasan jumlah daftar tugas. Anda biasanya menentukan daftar tugas pekerja di aplikasi host pekerja saat Anda membuat objek pekerja.

Kutipan berikut dari aplikasi host HelloWorldWorkflow membuat pekerja aktivitas baru dan menetapkannya ke daftar tugas aktivitas HelloWorldList.

public class GreeterWorker { public static void main(String[] args) throws Exception { ... String domain = " helloWorldExamples"; String taskListToPoll = "HelloWorldList"; ActivityWorker aw = new ActivityWorker(service, domain, taskListToPoll); aw.addActivitiesImplementation(new GreeterActivitiesImpl()); aw.start(); ... } }

Secara default, Amazon SWF menjadwalkan tugas pekerja dalam daftar HelloWorldList. Kemudian pekerja tersebut melakukan polling terhadap daftar tugas tersebut. Anda dapat menetapkan nama apa pun ke daftar tugas. Anda bahkan dapat menggunakan nama yang sama untuk alur kerja dan daftar aktivitas. Secara internal, Amazon SWF menempatkan nama daftar tugas alur kerja dan aktivitas di namespace yang berbeda, sehingga kedua daftar tersebut akan berbeda.

Jika Anda tidak menentukan daftar tugas, daftar default akan AWS Flow Framework menentukan daftar default saat pekerja mendaftarkan jenis dengan Amazon SWF. Untuk informasi selengkapnya, lihat Alur Kerja dan Jenis Aktivitas Pendaftaran.

Terkadang ada gunanya meminta pekerja atau grup pekerja tertentu melakukan tugas tertentu. Misalnya, alur kerja pemrosesan citra mungkin menggunakan satu aktivitas untuk mengunduh citra dan aktivitas lain untuk memproses citra. Ini lebih efisien untuk melakukan kedua tugas pada sistem yang sama, dan menghindari overhead mentransfer file besar melalui jaringan.

Untuk mendukung skenario tersebut, Anda dapat secara eksplisit menentukan daftar tugas saat Anda memanggil metode klien aktivitas dengan menggunakan kelebihan yang menyertakan parameter schedulingOptions. Anda menentukan daftar tugas dengan meneruskan metode ActivitySchedulingOptions objek yang dikonfigurasi dengan tepat.

Misalnya, anggaplah aktivitas say aplikasi HelloWorldWorkflow yang di-host oleh pekerja aktivitas yang berbeda dari getName dan getGreeting. Contoh berikut menunjukkan cara memastikan bahwa saymenggunakan daftar tugas yang sama seperti getName dan getGreeting, bahkan jika mereka awalnya ditetapkan ke daftar yang berbeda.

public class GreeterWorkflowImpl implements GreeterWorkflow { private GreeterActivitiesClient operations1 = new GreeterActivitiesClientImpl1(); //getGreeting and getName private GreeterActivitiesClient operations2 = new GreeterActivitiesClientImpl2(); //say @Override public void greet() { Promise<String> name = operations1.getName(); Promise<String> greeting = operations1.getGreeting(name); runSay(greeting); } @Asynchronous private void runSay(Promise<String> greeting){ String taskList = operations1.getSchedulingOptions().getTaskList(); ActivitySchedulingOptions schedulingOptions = new ActivitySchedulingOptions(); schedulingOptions.setTaskList(taskList); operations2.say(greeting, schedulingOptions); } }

Metode runSay asinkron mendapatkan daftar tugas getGreeting dari objek kliennya. Kemudian ia membuat dan mengonfigurasi objek ActivitySchedulingOptions yang memastikan bahwa say melakukan polling daftar tugas yang sama dengan getGreeting .

catatan

Saat Anda meneruskan parameter schedulingOptions ke metode klien aktivitas, itu menimpa daftar tugas asli hanya untuk eksekusi aktivitas tersebut. Jika Anda memanggil metode klien aktivitas lagi tanpa menentukan daftar tugas, Amazon SWF menetapkan tugas ke daftar asli, dan pekerja aktivitas akan melakukan polling daftar itu.