Saturday, December 16, 2017

Enable Asynchronous on Spring Boot

Halo teman-teman pembaca setia blog Nostra. Pada kesempatan kali ini kami akan membagikan bagaimana cara agar bisa menjalankan suatu method secara asynchronous pada framework yang Nostra gunakan, yaitu Spring Boot. Mungkin ada yang belum tau, apa itu asynchronous? Asynchronous secara bahasa artinya 'happening at the same time'. Intinya, asynchronous bisa menjalankan proses lain secara bersamaan dengan proses yang sedang berlangsung.

Kenapa kita perlu menggunakan asynchronous? Tentunya karena beberapa alasan, tetapi disini akan kami berikan satu alasan utamanya, yaitu menjalankan banyak proses tanpa harus menunggu proses sebelumnya, sehingga proses tersebut tidak saling tunggu.

Gimana cara agar method yang ada dijalankan secara asynchronous? Di Spring Boot hal ini sangat mudah, karena Spring Boot sudah menyediakan fitur tersebut. Hanya dengan memberikan annotation `@EnableAsync` pada configuration file dan `@Async` pada method yang ingin dijalankan secara asynchronous. Berikut langkah-langkah lebih lengkapnya:

- Buat configuration file yang me-enable async

Diatas menggunakan Bean annotation dengan nama "executor", tentunya anda dapat mengganti nama tersebut. Gunanya adalah untuk memudahkan dalam memanggil executor asynchronous.

- Gunakan @Async pada method yang ingin dijalankan secara asynchronous

Menggunakan @Async("executor") dengan "executor" adalah nama Bean yang sudah dibuat pada langkah sebelumnya. Pada contoh kali ini membutuhkan return value, untuk method yang akan dijalankan secara asynchronous, perlu menggunakan Future<{tipe data yang ingin di return}>.

- Call method yang akan dijalankan secara asynchronous


Dan walaaa, method anda sudah berjalan secara asynchronous. :)

Sudah cukup sharing nya pada kesempatan kali ini, semoga apa yang kami bagikan dapat bermanfaat bagi anda. Sekian, semoga sukses selalu!

3 comments:

  1. Ros, mau tanya dong. Di Spring, method apa sih yang biasanya perlu untuk dieksekusi secara async?

    ReplyDelete
    Replies
    1. biasanya method yang ada di package service kak, karena proses kan biasanya ada di service.

      nah tapi lebih baik lagi kalau dari frontend yang ngecall api secara asynchronous, jadi proses nya juga otomatis bakal berjalan secara asynchronous.

      Delete
  2. This comment has been removed by the author.

    ReplyDelete