

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
<a name="awsflow-basics-task-lists"></a>

 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](features.registration.md). 

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 `say`menggunakan 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. 