All Products
Search
Document Center

SchedulerX:Pengendalian konkurensi pekerjaan dengan antrian prioritas

Last Updated:Mar 12, 2026

Ketika banyak pekerjaan dimulai secara bersamaan—misalnya, sejumlah pekerjaan harian yang semuanya dipicu pada tengah malam—backend penjadwalan dapat menjadi kelebihan beban. SchedulerX menyediakan throttling tingkat aplikasi untuk mencegah hal ini dengan membatasi jumlah pekerjaan yang berjalan secara simultan. Pekerjaan yang melebihi batas konkurensi akan menunggu dalam antrian alih-alih dibuang. Anda juga dapat memberikan prioritas pada pekerjaan yang masuk antrian sehingga pekerjaan dengan prioritas lebih tinggi dijalankan terlebih dahulu ketika sebuah slot tersedia.

Penting

Pengaturan prioritas pekerjaan hanya berlaku dalam satu aplikasi tunggal. Pengaturan ini tidak memengaruhi penjadwalan di aplikasi lain.

Kapan menggunakan throttling tingkat aplikasi

Gunakan throttling tingkat aplikasi ketika workload Anda mengalami lonjakan puncak—misalnya, ratusan pekerjaan harian dengan waktu mulai yang sama. Mekanisme antrian mengatur jarak eksekusi pekerjaan agar backend tidak kewalahan.

ScenarioRecommendation
Lonjakan puncak (banyak pekerjaan dimulai secara bersamaan)Gunakan throttling tingkat aplikasi dengan atau tanpa antrian prioritas
Beban frekuensi tinggi berkelanjutan (pekerjaan per menit)Gunakan throttling sisi client atau tingkatkan kapasitas pemrosesan client sebagai gantinya
Catatan

Throttling dan antrian prioritas dirancang untuk skenario lonjakan puncak. Antrian di bawah beban berkelanjutan justru menyebabkan penumpukan alih-alih eksekusi yang lancar.

Mengatur throttling konkurensi

Throttling konkurensi membatasi jumlah pekerjaan yang dapat berjalan secara bersamaan untuk suatu aplikasi. Ketika batas tercapai, pekerjaan baru masuk ke antrian tunggu.

Langkah 1: Aktifkan Flow Control

  1. Di Konsol SchedulerX, buat atau edit kelompok aplikasi. Untuk detailnya, lihat Create an application group.

  2. Pada bagian Advanced Configuration, aktifkan Flow Control. Opsi ini dinonaktifkan secara default.

  3. Tetapkan Number of concurrent task instances ke jumlah maksimum pekerjaan yang dapat berjalan secara simultan.

Flow Control configuration

Langkah 2: Verifikasi perilaku antrian

  1. Buat tiga pekerjaan dalam kelompok aplikasi (misalnya, hello_jobA, hello_jobB, dan hello_jobC).

    Three jobs created in the application group

  2. Klik Run once di kolom Operation untuk setiap pekerjaan guna memicunya.

  3. Di panel navigasi sebelah kiri, klik Instances. Pada tab Task instance List, verifikasi bahwa:

    • hello_jobA sedang berjalan.

    • hello_jobB dan hello_jobC sedang menunggu di pool.

  4. Setelah hello_jobA selesai, hello_jobB masuk ke antrian eksekusi.

Batas konkurensi diberlakukan: pekerjaan berlebih masuk antrian alih-alih dijalankan secara bersamaan atau dibuang.

Tambahkan preemption berbasis prioritas

Preemption berbasis prioritas memperluas throttling konkurensi. Setiap pekerjaan diberi tingkat prioritas (high, medium, atau low). Ketika sebuah slot antrian tersedia, pekerjaan menunggu dengan prioritas tertinggi dijalankan berikutnya, terlepas dari urutan pengiriman.

Konsep ini mirip dengan cara Yet Another Resource Negotiator (YARN) mengisolasi resource untuk pekerjaan dengan prioritas berbeda:

YARN priority-based queue mechanism

Langkah 1: Tetapkan prioritas pada pekerjaan

Saat membuat atau mengedit pekerjaan, atur tingkat prioritas menjadi high, medium, atau low.

Job priority configuration

Langkah 2: Uji perilaku preemption

Untuk mengamati cara kerja preemption berbasis prioritas, aktifkan throttling untuk aplikasi (misalnya, dts-all.hxm) dan atur Number of concurrent task instances menjadi 1 sehingga hanya satu pekerjaan yang berjalan dalam satu waktu. Lalu buat tiga pekerjaan dengan prioritas berbeda:

JobPriority
Job AMedium
Job BLow
Job CHigh

Picu pekerjaan dalam urutan berikut: medium, low, high.

Three jobs with different priorities

Hasil yang diharapkan:

  1. Job A (medium) langsung dimulai karena tidak ada pekerjaan lain yang sedang berjalan.

  2. Job B (low) dan Job C (high) masuk ke antrian.

  3. Setelah Job A selesai, satu slot tersedia. Job C (high) dijalankan berikutnya karena memiliki prioritas lebih tinggi daripada Job B (low).

  4. Job B (low) dijalankan terakhir.

Ketika sebuah slot tersedia, pekerjaan dengan prioritas tertinggi dijalankan berikutnya—bukan yang dikirim pertama kali.

Batasan dan perilaku

ConstraintDetail
Cakupan prioritasPrioritas hanya berlaku dalam satu aplikasi tunggal. Menetapkan prioritas tinggi pada pekerjaan Anda tidak menyebabkannya dijalankan sebelum pekerjaan di aplikasi lain.
Perilaku antrian di bawah beban berkelanjutanMekanisme antrian efektif untuk lonjakan puncak. Untuk workload frekuensi tinggi berkelanjutan, antrian bertambah lebih cepat daripada dikosongkan. Gunakan throttling sisi client atau tingkatkan kapasitas pemrosesan client untuk pekerjaan per menit.

FAQ

Dapatkah saya menggunakan prioritas pekerjaan agar pekerjaan saya dijalankan sebelum pekerjaan di aplikasi lain?

Tidak. Prioritas pekerjaan hanya berlaku dalam satu aplikasi. Pekerjaan prioritas tinggi di aplikasi Anda tidak memengaruhi penjadwalan di aplikasi lain.

Haruskah saya menggunakan throttling untuk pekerjaan per menit?

Throttling dan penjadwalan berbasis antrian efektif untuk lonjakan puncak di mana banyak pekerjaan dimulai secara bersamaan. Untuk pekerjaan per menit dengan throughput tinggi berkelanjutan, antrian dapat menumpuk lebih cepat daripada dikosongkan. Dalam kasus tersebut, lakukan throttling di sisi client atau tingkatkan kapasitas pemrosesan client.