Periode penjadwalan menentukan seberapa sering suatu node berjalan secara otomatis di lingkungan produksi. Sistem penjadwalan DataWorks menghasilkan instans berulang berdasarkan periode ini dan memicu eksekusinya sesuai dengan dependensi node serta waktu terjadwal masing-masing instans.
Konsep inti
Instans berulang: Instans berulang adalah entitas waktu proses yang dihasilkan oleh sistem penjadwalan untuk setiap tanggal bisnis berdasarkan konfigurasi penjadwalan suatu task, misalnya berjalan setiap hari pukul 00:00. Eksekusi task, status, dan log semuanya dikaitkan dengan instans ini.
Dependensi lintas periode: DataWorks mendukung dependensi antara node dengan periode penjadwalan berbeda. Misalnya, node downstream harian dapat bergantung pada node upstream per jam. Dependensi tersebut dibentuk antara instans berulang yang dihasilkan masing-masing. Untuk informasi selengkapnya, lihat Memahami dependensi antara periode penjadwalan berbeda.
Dry-run: Untuk task yang tidak dijadwalkan berjalan setiap hari—misalnya mingguan, bulanan, atau tahunan—sistem penjadwalan menghasilkan instans dry-run pada hari-hari non-eksekusi. Saat waktu terjadwalnya tiba, instans ini langsung berubah ke status "Succeeded", tetapi tidak mengeksekusi kode dalam node. Tujuan utama dry-run adalah menyelesaikan dependensi sehingga node downstream dapat berjalan sesuai jadwal.
Statusnya "Succeeded", durasinya 0 detik, dan tidak menghasilkan log eksekusi.
Tidak mengonsumsi sumber daya penjadwalan maupun komputasi.
Tidak memblokir node downstream. Bahkan jika node upstream melakukan dry-run, node downstream tetap berjalan sesuai jadwal begitu kondisinya terpenuhi.
Prinsip dasar dan skenario
Kondisi eksekusi
Instans berulang dieksekusi hanya jika kedua kondisi berikut terpenuhi, tanpa urutan tertentu:
Semua instans upstream yang menjadi dependensinya telah selesai berhasil, termasuk instans yang sukses melalui dry-run.
Waktu terjadwal instans tersebut telah tiba.
Oleh karena itu, waktu penjadwalan yang dikonfigurasi hanyalah waktu terjadwal yang diharapkan. Faktor-faktor seperti waktu penyelesaian node upstream, ketersediaan sumber daya komputasi, dan kondisi waktu proses lainnya memengaruhi waktu eksekusi aktual node tersebut.
Skenario penjadwalan alur kerja
Pada alur kerja yang terdiri dari node A, B, dan C (A→B→C), konfigurasi waktu penjadwalan memengaruhi seluruh eksekusi alur kerja:
Skenario 1: Waktu mulai seragam | |
Jika seluruh alur kerja harus dimulai setelah pukul 03.00 pagi, Anda cukup mengatur waktu terjadwal untuk Node akar, yaitu A, menjadi |
Skenario 2: Waktu mulai berbeda | |
Jika Node A harus berjalan pukul 03.00 pagi, Node B setelah pukul 05.00 pagi, dan Node C setelah pukul 06.00 pagi, Anda harus mengatur waktu terjadwal masing-masing menjadi | |
Skenario 3: Waktu mulai spesifik | |
Jika Node A harus berjalan pukul 03.00 pagi dan Node B harus berjalan setelah pukul 05.00 pagi, sedangkan Node C tidak memiliki kebutuhan waktu spesifik, Anda harus mengatur waktu terjadwal Node A menjadi | |
Dampak pembaruan jadwal
Setelah Anda mengubah jadwal suatu node di Scheduling dan menerbitkan ulang node tersebut, dampaknya bergantung pada Metode Pembuatan Instans yang dipilih:
Generate instance on the next day (T+1): Jika Anda memilih opsi ini dan menerbitkan node, waktu terjadwal instans yang sudah dihasilkan untuk hari ini (T) dan hari sebelumnya (T-1) diperbarui ke waktu baru. Hal ini berlaku untuk semua instans tersebut, terlepas dari statusnya (misalnya, pending, running, atau completed). Instans mendatang dihasilkan berdasarkan jadwal baru.
Generate instance now: Opsi ini segera menghasilkan instans baru berdasarkan konfigurasi baru. Waktu terjadwal instans historis tidak berubah.
Jenis penjadwalan
DataWorks mendukung periode penjadwalan per menit, per jam, harian, mingguan, bulanan, dan tahunan. Pada halaman pengeditan node di DataStudio (Data Development), klik Scheduling di panel kanan dan konfigurasikan pengaturan di bagian Scheduling Time.
Metode konfigurasi waktu penjadwalan bergantung pada cara node diorganisasikan:
Workflow Node: Jika suatu node merupakan bagian dari alur kerja, jadwalnya dikonfigurasi di tingkat alur kerja. Node individual dalam alur kerja tidak dapat memiliki jadwal terpisah. Untuk melakukan perubahan, buka konfigurasi penjadwalan alur kerja tersebut.
Standalone Node: Jika suatu node tidak termasuk dalam alur kerja apa pun, jadwalnya dikonfigurasi secara independen.
Penjadwalan per menit
Interval minimum untuk penjadwalan per menit adalah 1 menit.
Contoh konfigurasi
Tujuan: Jadwalkan node agar berjalan setiap 30 menit antara 00:00 dan 23:59 setiap hari.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan Anda dan tidak dapat diedit secara manual.

Rincian penjadwalan
Konfigurasi ini menghasilkan 48 instans berulang per hari, dengan waktu terjadwal pukul 00:00, 00:30, 01:00, ..., 23:30. Tanggal bisnis untuk setiap instans adalah hari yang sama.
Untuk skenario dependensi terkait penjadwalan per menit lebih lanjut, lihat Minute task dependencies.
Penjadwalan per jam
Catatan
Periode waktu merupakan interval tertutup [mulai, akhir]. Misalnya, jika Anda mengonfigurasi task agar berjalan setiap 1 jam antara
00:00dan03:00, sistem penjadwalan menghasilkan empat instans dengan waktu terjadwal00:00,01:00,02:00, dan03:00.Anda dapat mengatur rentang waktu dan interval, atau menentukan beberapa waktu eksekusi diskret.
Contoh konfigurasi
Tujuan: Jadwalkan node agar berjalan secara otomatis setiap 6 jam antara 00:00 dan 23:59 setiap hari.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan Anda dan tidak dapat diedit secara manual.

Rincian penjadwalan
Sistem penjadwalan menghasilkan empat instans per hari dengan waktu terjadwal 00:00, 06:00, 12:00, dan 18:00.
Untuk skenario dependensi terkait penjadwalan per jam lebih lanjut, lihat Hourly task dependencies.
Penjadwalan harian
Node harian berjalan sekali per hari pada waktu tertentu. Saat membuat task berulang baru, waktu terjadwal bawaannya diatur ke waktu acak antara 00:00 dan 00:30, yang dapat Anda ubah sesuai kebutuhan.
Contoh konfigurasi
Tujuan: Jadwalkan node agar berjalan sekali pada pukul 13:00 setiap hari.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan Anda dan tidak dapat diedit secara manual.

Rincian penjadwalan
Sistem penjadwalan menghasilkan satu instans untuk task ini setiap hari, dengan waktu terjadwal pukul 13:00.
Untuk skenario dependensi terkait penjadwalan harian lebih lanjut, lihat Daily task dependencies.
Penjadwalan mingguan
Pada hari-hari non-terjadwal, node mingguan melakukan dry-run untuk memastikan dependensi downstream dapat berjalan sesuai jadwal. Untuk informasi selengkapnya, lihat Dry-run.
Contoh konfigurasi
Tujuan: Jadwalkan task agar berjalan pada waktu tertentu setiap hari Senin dan Jumat. Instans untuk hari Senin dan Jumat akan berjalan penuh, sedangkan instans untuk hari lainnya akan melakukan dry-run.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan Anda dan tidak dapat diedit secara manual.

Rincian penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk task tersebut.
Saat menggunakan fitur pengisian ulang data, pilih dengan cermat tanggal bisnis yang tepat. Di DataWorks, aturannya adalah tanggal bisnis = tanggal terjadwal – 1 hari. Misalnya, untuk mengisi ulang task mingguan yang berjalan pada hari Senin, Anda harus memilih hari Minggu sebelumnya sebagai tanggal bisnis. Jika Anda memilih tanggal bisnis lain, instans pengisian ulang akan melakukan dry-run.
Penjadwalan bulanan
Pada hari-hari non-terjadwal, node bulanan melakukan dry-run untuk memastikan dependensi downstream dapat berjalan sesuai jadwal. Untuk informasi selengkapnya, lihat Dry-run.
Untuk penjadwalan bulanan, Anda dapat mengatur Specified Time menjadi Last Day Of Each Month.
Contoh konfigurasi
Tujuan: Jadwalkan task agar berjalan pada waktu tertentu di hari terakhir setiap bulan. Instans untuk hari terakhir bulan tersebut akan berjalan penuh, sedangkan instans untuk hari lainnya akan melakukan dry-run.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan Anda dan tidak dapat diedit secara manual.

Rincian penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk task tersebut.
Saat menggunakan fitur pengisian ulang data, pilih dengan cermat tanggal bisnis yang tepat. Di DataWorks, aturannya adalah tanggal bisnis = tanggal terjadwal – 1 hari. Misalnya, untuk mengisi ulang task bulanan yang berjalan pada hari terakhir Januari (31 Januari), Anda harus memilih 30 Januari sebagai tanggal bisnis. Jika Anda memilih tanggal bisnis lain, instans pengisian ulang akan melakukan dry-run.
Penjadwalan tahunan
Pada hari-hari non-terjadwal, node tahunan melakukan dry-run untuk memastikan dependensi downstream dapat berjalan sesuai jadwal. Untuk informasi selengkapnya, lihat Dry-run.
Contoh konfigurasi
Tujuan: Jadwalkan task agar berjalan pada tanggal 1 dan hari terakhir bulan Januari, April, Juli, dan Oktober setiap tahun. Instans untuk tanggal-tanggal spesifik tersebut akan berjalan penuh, sedangkan instans untuk hari lainnya akan melakukan dry-run.

Rincian penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk task tersebut.
Untuk skenario dependensi lebih lanjut, lihat Principles and examples for configuring complex dependency scheduling.