All Products
Search
Document Center

SchedulerX:Pembatasan kecepatan tingkat aplikasi dengan antrian prioritas

Last Updated:Jun 21, 2026

Dalam penjadwalan task, Anda dapat menerapkan pembatasan kecepatan tingkat aplikasi dengan dua strategi: mengaktifkan flow control dengan ukuran antrian tertentu atau mengonfigurasi antrian prioritas preemptive. Metode-metode ini membantu menjaga stabilitas sistem penjadwalan dan memastikan eksekusi tepat waktu untuk task kritis. Topik ini menjelaskan cara mengelola sumber daya tingkat aplikasi dan penjadwalan prioritas task secara efektif.

Kasus penggunaan

Sistem Anda dapat mengalami tekanan berat saat menghadapi lonjakan tiba-tiba dalam penjadwalan task. Misalnya, jika banyak task harian dijadwalkan untuk dimulai pada waktu yang sama, beban konkuren dapat membebani layanan backend hingga berisiko menyebabkan kegagalan sistem. Untuk mencegah hal ini, Anda dapat menggunakan mekanisme antrian dalam penjadwalan task guna membatasi jumlah task konkuren dalam suatu aplikasi. Dengan mendispatch task secara bertahap, Anda memastikan pemanfaatan sumber daya sistem yang efisien dan menjaga operasi tetap stabil.

Prosedur

Aktifkan flow control dan atur ukuran antrian

  1. Saat membuat atau mengedit kelompok aplikasi, aktifkan sakelar flow control di bagian Konfigurasi Lanjutan. Fitur ini dinonaktifkan secara default. Untuk informasi lebih lanjut tentang cara membuat kelompok aplikasi, lihat Create an application group.

    Setelah mengaktifkan sakelar tersebut, konfigurasikan number of concurrent task instances. Pengaturan ini menentukan jumlah maksimum instans task yang dapat berjalan secara bersamaan untuk aplikasi tersebut. Task yang melebihi batas ini tidak dibuang, melainkan ditempatkan dalam antrian untuk menunggu eksekusi.

  2. Dalam kelompok aplikasi ini, buat tiga task dan klik Run Once untuk masing-masing task di kolom Actions.

  3. Di panel navigasi sisi kiri, buka halaman Execution List dan pilih tab Task Instance List. Tugas pertama yang dipicu, hello_jobA, sedang berjalan, sedangkan hello_jobB dan hello_jobC menunggu di dalam pool.

  4. Setelah hello_jobA berhasil, hello_jobB didispatch dari antrian untuk dieksekusi.

    Pada titik ini, status hello_jobB dalam daftar instans berubah menjadi running, sedangkan hello_jobC tetap berada di pool.

Konfigurasi antrian prioritas preemptive

Sebagai contoh, YARN menggunakan antrian prioritas untuk mengisolasi sumber daya bagi task dengan prioritas berbeda.

Panel Application Queues di YARN ResourceManager menampilkan penggunaan kapasitas untuk antrian root, research, dan default. Antrian root berada pada kapasitas 100,0%, sub-antrian research pada 93,8%, dan sub-antrian default pada 101,6%, yang telah melebihi kapasitas yang dialokasikan. Hal ini menunjukkan bagaimana sumber daya diisolasi dan bagaimana task dengan prioritas berbeda saling bersaing untuk mendapatkannya.

Prosedur berikut menjelaskan bagaimana SchedulerX menggabungkan pembatasan kecepatan tingkat aplikasi dan prioritas task untuk menerapkan antrian prioritas preemptive.

  1. Task dapat diberi prioritas. Dalam aplikasi yang sama, jika beberapa task dijadwalkan secara bersamaan, task dengan prioritas lebih tinggi akan didispatch terlebih dahulu.

    Saat membuat task, pada langkah Basic Configuration, daftar drop-down Priority menyediakan empat opsi: low, medium, high, dan very high.

  2. Aktifkan flow control untuk aplikasi contoh dts-all.hxm dan atur number of concurrent task instances menjadi 1 agar lebih mudah diamati. Lalu, buat tiga task dengan prioritas high, medium, dan low. Picu masing-masing task sekali dalam urutan berikut: prioritas medium, prioritas low, lalu prioritas high.

    Daftar task di halaman Task Management Konsol menampilkan ketiga task yang telah dibuat. Kolom Priority ditandai masing-masing sebagai high, medium, dan low, serta setiap task memiliki tombol Run once di kolom Actions.

  3. Di panel navigasi sebelah kiri, buka halaman Execution List dan pilih tab Task Instance List. Saat task dengan prioritas medium dipicu, task tersebut langsung berjalan karena antrian kosong.

    Saat ini, status tugas prioritas tinggi dan tugas prioritas rendah adalah pool, sedangkan status tugas prioritas menengah adalah Berjalan.

  4. Setelah task prioritas medium selesai, tersedia slot eksekusi baru dalam antrian. Task prioritas high kemudian mengambil alih (preempt) task prioritas low dan mulai berjalan.

    Pada tahap ini dalam daftar tugas, status tugas prioritas menengah adalah berhasil, status tugas prioritas tinggi adalah berjalan, dan tugas prioritas rendah tetap berada di dalam pool, menunggu penjadwalan.

FAQ

  • Jika saya mengatur prioritas semua task saya ke very high, apakah itu menjamin task tersebut akan dijadwalkan sebelum task dari pengguna lain?

    Tidak. Prioritas task hanya berlaku dalam cakupan tingkat aplikasi. Prioritas ini hanya memengaruhi urutan penjadwalan task dalam aplikasi tersebut dan tidak memengaruhi aplikasi lain.

  • Bisakah saya menggunakan flow control berbasis antrian untuk task yang berjalan setiap menit?

    Fitur ini dirancang untuk skenario dengan lonjakan traffic mendadak. Fitur ini tidak direkomendasikan untuk jadwal berfrekuensi tinggi per menit, karena dapat menyebabkan antrian terus bertambah tanpa batas. Untuk kasus seperti ini, pertimbangkan untuk menerapkan throttling di sisi client atau melakukan scaling up pada client Anda agar mampu menangani beban tersebut.