Istilah SchedulerX berikut dikelompokkan berdasarkan perannya dalam arsitektur sistem.
Organisasi resource
Namespace
SchedulerX menggunakan namespace untuk mengisolasi resource. Setiap namespace bersifat logis independen, sehingga Anda dapat memisahkan lingkungan seperti development, staging, dan production sekaligus mengelola semua namespace tersebut dalam satu Akun Alibaba Cloud.
AppGroup
AppGroup (application group) merepresentasikan sebuah aplikasi dan dikaitkan dengan worker. AppGroup mengisolasi pekerjaan dari aplikasi yang berbeda. Sebagai contoh, tempatkan pekerjaan pemrosesan pesanan dan pekerjaan pelaporan dalam AppGroup terpisah agar tetap independen.
Unit penjadwalan
SchedulerX memiliki tiga tingkat unit penjadwalan: job, job instance, dan task.
Job
└── Job instance (satu per trigger)
└── Task (sub-unit untuk eksekusi paralel)
Job
Job merupakan unit penjadwalan terkecil dalam SchedulerX.
Job instance
Setiap kali sistem memicu sebuah job, sistem tersebut menghasilkan satu job instance. Satu job dapat menghasilkan banyak job instance seiring waktu—satu untuk setiap event trigger.
Task
Task adalah sub-unit yang dibuat ketika sistem memanggil metode map dalam mode komputasi paralel, memory grid, atau grid computing.
Orkestrasi
Workflow
Workflow mengoordinasikan beberapa job ke dalam Directed Acyclic Graph (DAG). Setiap node dalam workflow merepresentasikan sebuah job, sedangkan sisi-sisinya menentukan urutan eksekusi dan dependensinya.
DAG
DAG adalah singkatan dari Directed Acyclic Graph—graf berarah yang tidak memiliki siklus. Di SchedulerX, setiap workflow direpresentasikan sebagai DAG, sehingga dependensi job diselesaikan dalam urutan yang dapat diprediksi dan bebas siklus.
Konsep waktu
Scheduled time
Scheduled time adalah waktu ketika sebuah job instance dijadwalkan untuk dijalankan. JobProcessor dapat mengambil scheduled time dengan context.getScheduleTime().
Time-series data
SchedulerX mendukung pemrosesan time-series data dengan memisahkan waktu pemicu dari periode data yang diproses oleh job. Saat membuat job, atur offset waktu agar job memproses data dari titik waktu yang berbeda dengan waktu eksekusinya.
Contoh: Sebuah job dipicu setiap hari pukul 00.30, tetapi Anda perlu memproses data yang diperbarui pada pukul 23.30 hari sebelumnya. Atur offset waktu menjadi 1 jam. Job tetap dipicu pada pukul 00.30, tetapi context.getDataTime() akan mengembalikan pukul 23.30 hari sebelumnya, sehingga kode Anda dapat mengambil jendela data yang tepat.