Scheduling with Micronaut

Akyong
Java and other Java Framework
2 min readFeb 25, 2019

Kali ini saya akan membahas tentang Scheduler / penjadwalan. Sebagai acuan percobaan saya akan membuat sebuah aplikasi microservices dengan framework micronaut yang diimplementasikan dengan scheduler.

Pertama, buatlah sebuah aplikasi microservices dengan command line / CLI.

>_ mn create-app aplikasi-scheduler

Cli untuk buat aplikasi/project

Selanjutnya buka aplikasi/project yang telah dibuat lewat tools. (seperti Netbeans, Intellij IDEA atau tools lainnya) dan buat sebuah file dengan nama HelloWorldJob.java seperti dibawah ini.

Buat File HelloWorldJob.java

Kemudian sisipkan codingan seperti dibawah ini.

package aplikasi.scheduler;

import io.micronaut.scheduling.annotation.Scheduled;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Singleton;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* <p>Contoh Aplikasi Microservices - 'Scheduler'</p>
* Aplikasi ini dibuat untuk membantu memudahkan para pembaca lebih memahami
* tentang pembuatan aplikasi penjadwalan.
*
*
@author akyong
* */
@Singleton
public class HelloWorldJob {
private static final Logger LOG = LoggerFactory.getLogger(HelloWorldJob.class);

/*
* Penjadwalan dengan jangka waktu yang pasti adalah setiap 10 detik
* */
@Scheduled(fixedDelay = "10s")
void executeEveryTenSeconds() {
LOG.info("Simple Job setiap 10 detik :{}", new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new Date()));
}

/*
* Penjadwalan dengan jangka waktu yang pasti adalah 45 detik
* namun saat aplikasi mulai berjalan, hitungan detik pertamanya adalah detik ke 6
* artinya detik pertama hingga detik kelima tidak masuk hitungan karena ada "initialDelay = '5s'"
* */
@Scheduled(fixedDelay = "45s", initialDelay = "5s")
void executeEveryFourtyFiveSeconds() {
LOG.info("Simple Job setiap 45 detik - delay awal 5 detik :{}", new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new Date()));
}
}

Penjelasan :

  1. Registrasi @Singleton
  2. Deklarasi method dengan anotasi @Secheduled dengan delay 10 detik dan 45 detik.
  3. initialDelay adalah ketika aplikasi sudah berjalan hingga 5 detik barulah 45 detik ini mulai dihitung.
Tampilan codingan dalam bentuk gambar.

jika sudah pada tahap ini, buka kembali command line / CLI-nya dan jalankan command ./gradlew run dan lihat hasilnya.

sekian, aplikasi simple membuat scheduler /penjadwalan. Source codenya bisa di download/clone di github atau di link https://github.com/akyong/aplikasi-scheduler

Silakan Share jika postingan ini bermanfaat bagi anda, mohon like dan share.

--

--