Properti waktu merupakan kondisi penjadwalan inti yang menentukan kapan dan bagaimana DataWorks memicu tugas terjadwal. Properti ini mencakup scheduled time, serta konfigurasi lanjutan seperti instance generation mode, scheduling calendar, rerun settings, dan timeout policies. Parameter-parameter ini secara bersama mengontrol aturan pemicu tugas, batasan eksekusi, serta pemulihan otomatis dari error. Panduan ini menjelaskan cara mengonfigurasi properti waktu tersebut untuk membangun alur kerja data otomatis yang stabil dan andal.
Panduan cepat: Contoh konfigurasi
Skenario: Perusahaan e-commerce perlu menghitung total penjualan hari sebelumnya secara otomatis setiap hari pada pukul 02:00. Jika tugas gagal karena faktor seperti fluktuasi jaringan, sistem harus secara otomatis mencoba ulang sebanyak 3 kali.
Langkah 1: Atur Waktu Terjadwal
Atur scheduling cycle: Klik ganda nama tugas. Pada bagian kanan di , atur Scheduling Cycle menjadi Day.
Atur scheduled time: Tetapkan scheduled time ke 02:00.
Langkah 2: Atur kebijakan penjadwalan
Tentukan properti rerun: Atur Rerun menjadi Allow Regardless of Running Status.
Auto rerun upon failure: Pilih Auto Rerun upon Failure, atur Retries menjadi
3, dan atur Interval menjadi5 minutes.Pertahankan nilai default untuk properti lainnya.
Hasil:
Setelah Anda menerapkan tugas tersebut, sistem akan secara otomatis memicunya setiap hari pukul 02:00, mulai dari hari berikutnya (T+1). Jika tugas gagal, sistem akan mencoba ulang setiap 5 menit. Tugas tersebut akan dijalankan maksimal 4 kali (1 eksekusi normal + 3 percobaan ulang).
Pengenalan fungsi
Konfigurasi properti waktu mendefinisikan seluruh proses tugas terjadwal, mulai dari pembuatan hingga eksekusi. Konfigurasi ini mencakup dimensi inti berikut:
Scheduling time: Menentukan frekuensi penjadwalan dan waktu spesifik untuk eksekusi tugas.
Manajemen siklus hidup instans: Menentukan kapan sebuah instans dibuat dan periode validitasnya. Ini mencakup:
Mode pembangkitan instans: Mengontrol apakah instans dibangkitkan di
penerapan atau hari berikutnya.
Effective period: Menetapkan rentang waktu valid keseluruhan untuk tugas tersebut.
Scheduling calendar: Mengecualikan hari non-kerja, seperti hari libur nasional.
Kebijakan eksekusi: Mendefinisikan perilaku instans pada scheduled time-nya, seperti eksekusi normal, dry-run (skip), atau pause.
Penanganan exception dan toleransi kesalahan: Memberikan penanganan otomatis untuk exception, seperti kegagalan tugas atau timeout, melalui definisi timeout dan pengaturan rerun.
Scheduling time
Scheduling time mengontrol waktu eksekusi terencana suatu tugas (juga disebut scheduled time). Ini menentukan seberapa sering sebuah node tugas harus dipicu secara otomatis di lingkungan produksi. Sistem menghasilkan sejumlah instans berulang yang sesuai untuk tugas tersebut berdasarkan siklus yang Anda tetapkan. Sistem kemudian menggunakan scheduled time dan dependensi penjadwalan dari instans-instans tersebut untuk mengelola eksekusi otomatis seluruh alur kerja.
Scheduled time dan business date adalah dua konsep garis dasar waktu
Konsep di DataWorks. Untuk informasi selengkapnya, lihat Konsep Inti: Garis Dasar Waktu.
Kemandirian dan dependensi siklus penjadwalan
Frekuensi independen: Frekuensi penjadwalan suatu tugas, seperti per jam atau per hari, ditentukan oleh konfigurasinya sendiri dan tidak bergantung pada frekuensi tugas hulu. Misalnya, tugas laporan harian dapat bergantung pada tugas persiapan data per jam. Untuk informasi lebih lanjut tentang mengonfigurasi dependensi dengan frekuensi siklus berbeda, lihat Praktik terbaik: Prinsip dan contoh konfigurasi penjadwalan untuk dependensi kompleks.
Dependensi instans: Dependensi antar-tugas dengan siklus penjadwalan berbeda (dependensi lintas-siklus) pada dasarnya adalah dependensi instans. Sistem secara otomatis menyelesaikannya untuk memastikan bahwa instans hilir hanya dijalankan setelah semua instans hulu yang sesuai untuk business date yang sama berhasil.
Mekanisme dry-run: Untuk menghindari pemblokiran tugas hilir, tugas non-harian (seperti mingguan, bulanan, atau tahunan) menghasilkan instans dry-run pada hari-hari non-eksekusi. Instans ini langsung diatur ke status sukses tanpa mengeksekusi kode atau mengonsumsi sumber daya. Hal ini memastikan bahwa tugas harian hilir dapat dipicu secara normal.
Scheduled time vs. actual running time
Scheduled time: Waktu yang Anda tetapkan dalam konfigurasi penjadwalan adalah waktu mulai yang diharapkan untuk tugas tersebut. Ini adalah waktu paling awal tugas dapat mulai dijalankan.
Actual running time: Waktu mulai aktual suatu tugas bergantung pada terpenuhinya dua kondisi secara bersamaan:
Semua instans hulu telah berhasil dijalankan.
Sumber daya komputasi tersedia.
Zona waktu penjadwalan
Scheduled time suatu tugas menggunakan zona waktu wilayah ruang kerjanya secara default. Untuk menangani skenario seperti perubahan waktu daylight saving, Anda dapat mengubah zona waktu penjadwalan. Untuk informasi lebih lanjut, lihat Mengganti zona waktu penjadwalan dan Skenario: Dampak perubahan waktu daylight saving terhadap tugas terjadwal.
Bagian berikut menyediakan contoh konfigurasi untuk berbagai skenario:
Penjadwalan per menit
Tetapkan waktu mulai dan akhir serta interval eksekusi. Interval minimum adalah 1 menit. Dalam periode waktu yang ditentukan, sistem menghasilkan beberapa instans pada interval tetap.
Contoh konfigurasi
Node target dijadwalkan sekali setiap 30 menit dalam periode waktu dari 00:00 hingga 23:59 setiap hari. Gambar berikut menunjukkan detail konfigurasinya.

Detail instans
Gambar berikut menunjukkan scheduled time dan penggantian parameter penjadwalan untuk node yang dijadwalkan setiap 30 menit.
Penjadwalan per jam
Ini cocok untuk skenario sinkronisasi frekuensi tinggi atau komputasi near-real-time.
Logika pembuatan instans: Sistem menghitung instans berulang berdasarkan interval tertutup [Start Time, End Time].
Contoh: Jika rentang waktu diatur ke
[00:00, 03:00]dengan interval1 hour, sistem menghasilkan empat instans. Waktu eksekusi terencananya tepat pada pukul 00:00, 01:00, 02:00, dan 03:00.
Metode konfigurasi:
Pemicu berbasis frekuensi: Tugas dijalankan berulang pada interval tetap (misalnya setiap jam) dalam periode waktu tertentu.
Pemicu titik waktu: Menentukan satu atau beberapa titik waktu diskret dan presisi untuk menjalankan Tugas.
Contoh konfigurasi
Tugas target dijadwalkan secara otomatis sekali setiap 6 jam dalam periode waktu dari 00:00 hingga 23:59 setiap hari. Gambar berikut menunjukkan detail konfigurasinya.

Detail penjadwalan
Sistem penjadwalan menghasilkan empat instans setiap hari dan menjalankannya pada scheduled time masing-masing yaitu pukul 00:00, 06:00, 12:00, dan 18:00, seperti yang ditunjukkan pada gambar berikut.
Penjadwalan harian
Penjadwalan harian adalah metode penjadwalan paling umum. Metode ini memungkinkan Anda menjalankan tugas sekali sehari pada waktu tertentu dalam periode efektif yang ditentukan. Saat membuat tugas, penjadwalan harian diatur sebagai default, dengan scheduled time yang dihasilkan secara acak antara 00:00 dan 00:30. Anda dapat menentukan waktu eksekusi berbeda sesuai kebutuhan. Misalnya, Anda dapat mengatur tugas untuk dijalankan sekali setiap hari pukul 13:00.
Contoh konfigurasi

Detail penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk tugas tersebut. Gambar berikut menunjukkan waktu transformasi data untuk setiap hari bisnis.
Penjadwalan mingguan
Ini cocok untuk ringkasan bisnis atau maintenance data berkala yang terjadi pada frekuensi mingguan tetap.
Logika pembuatan instans: Sistem menghasilkan instans setiap hari dalam periode efektif.
Eksekusi normal: Logika kode dipicu sesuai jadwal hanya pada hari eksekusi yang Anda pilih (misalnya Senin dan Jumat).
Dry-run otomatis: Instans yang dihasilkan pada hari yang tidak dipilih (misalnya Selasa, Rabu, Kamis, Sabtu, dan Minggu) secara otomatis diatur ke status dry-run sukses. Instans tersebut tidak benar-benar menjalankan logika apa pun atau mengonsumsi sumber daya komputasi.
Contoh konfigurasi
Jika tugas target dikonfigurasi untuk dijalankan setiap Senin dan Jumat, instans yang dihasilkan pada hari Senin dan Jumat akan dijadwalkan dan dijalankan secara normal. Instans yang dihasilkan pada hari Selasa, Rabu, Kamis, Sabtu, dan Minggu akan menjadi dry-run. Artinya, ketika waktu eksekusi terjadwalnya tiba, statusnya langsung diatur ke sukses tanpa menjalankan logika kode apa pun. Gambar berikut menunjukkan detail konfigurasinya.

Detail penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk tugas tersebut.
Penjadwalan bulanan
Ini cocok untuk skenario pemrosesan data berdasarkan bulan kalender. Ini merupakan siklus umum untuk tugas inti seperti penyelesaian keuangan, laporan kinerja bulanan, dan analisis perilaku pengguna bulanan.
Logika pembuatan instans: Sistem menghasilkan instans berdasarkan tanggal spesifik dalam bulan yang Anda pilih. Sebuah instans penjadwalan bulanan merepresentasikan satu bulan kalender penuh.
Eksekusi normal: Logika kode dipicu sesuai jadwal hanya pada hari eksekusi yang Anda pilih (misalnya tanggal 15 atau hari terakhir bulan).
Dry-run otomatis: Instans yang dihasilkan pada hari yang tidak dipilih (misalnya tanggal 1 hingga 14 bulan tersebut) secara otomatis diatur ke status dry-run. Instans tersebut tidak benar-benar menjalankan logika apa pun atau mengonsumsi sumber daya komputasi.
Contoh konfigurasi
Jika tugas target dikonfigurasi untuk menjalankan penyelesaian pada hari terakhir setiap bulan, instans yang dihasilkan pada hari terakhir bulan tersebut akan dijadwalkan dan dijalankan secara normal. Instans yang dihasilkan pada hari lainnya akan menjadi dry-run. Artinya, ketika waktu eksekusi terjadwalnya tiba, statusnya langsung diatur ke sukses tanpa menjalankan logika kode apa pun. Gambar berikut menunjukkan detail konfigurasinya.

Detail penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk tugas tersebut, seperti yang ditunjukkan pada gambar berikut.
Saat menggunakan fitur data backfill untuk mengisi ulang data tugas penjadwalan bulanan, perhatikan bahwa tanggal yang Anda pilih untuk pengisian ulang adalah business date, dan business date = scheduled time - 1 day.
Contohnya:
Saat mengisi ulang data untuk tugas yang dijalankan pada tanggal 1 bulan, pilih akhir bulan sebelumnya sebagai waktu data.
Saat mengisi ulang data untuk tugas yang dijalankan pada akhir bulan, pilih hari sebelum akhir bulan sebagai waktu data.
Jika Anda memilih waktu lain sebagai waktu data untuk pengisian ulang, instans pengisian ulang tersebut akan menjadi dry-run.
Untuk informasi lebih lanjut tentang skenario dependensi, lihat Praktik terbaik: Prinsip dan contoh konfigurasi penjadwalan untuk dependensi kompleks.
Penjadwalan tahunan
Ini cocok untuk tugas data siklus panjang seperti ringkasan triwulanan, audit tahunan, atau tugas untuk hari libur tertentu.
Logika pembuatan instans: Instans dihasilkan setiap hari dalam setahun, tetapi komputasi aktual hanya dipicu pada bulan dan tanggal tertentu yang ditentukan.
Kombinasi fleksibel: Mendukung pemilihan beberapa tanggal di berbagai bulan, seperti hanya dijalankan pada hari pertama atau terakhir setiap kuartal.
Mekanisme dry-run: Pada tanggal yang tidak memenuhi kondisi eksekusi, instans menjadi dry-run dalam hitungan detik. Instans tersebut tidak benar-benar menjalankan logika apa pun atau mengonsumsi sumber daya komputasi.
Contoh konfigurasi
Jika tugas target dikonfigurasi untuk dijalankan pada tanggal 1 dan hari terakhir Januari, April, Juli, dan Oktober setiap tahun, instans yang dihasilkan pada tanggal-tanggal tersebut akan dijadwalkan dan dijalankan secara normal. Instans yang dihasilkan pada tanggal lainnya akan menjadi dry-run. Artinya, ketika waktu eksekusi terjadwalnya tiba, statusnya langsung diatur ke sukses tanpa menjalankan logika kode apa pun. Gambar berikut menunjukkan detail konfigurasinya.

Detail penjadwalan
Sistem penjadwalan secara otomatis menghasilkan dan menjalankan instans untuk tugas tersebut, seperti yang ditunjukkan pada gambar berikut.
Ekspresi cron dihasilkan secara otomatis berdasarkan pilihan waktu Anda dan tidak dapat dimodifikasi secara manual.
Manajemen siklus hidup instans
Pengaturan ini menentukan apakah instans tugas dibuat. Pengaturan ini tidak mengontrol waktu eksekusi spesifik suatu tugas. Sebaliknya, pengaturan ini mengelola pada level yang lebih tinggi apakah instans harus dibuat dan apakah aturan penjadwalan itu sendiri aktif.
Instance generation mode: Menentukan apakah perubahan konfigurasi Anda berlaku pada hari yang sama atau hari berikutnya. Aktivasi hari berikutnya (default) memastikan bahwa perubahan tidak mengganggu tugas hari ini, sehingga memungkinkan transisi yang lancar. Aktivasi segera memaksa reset instans hari ini untuk menerapkan perubahan. Gunakan opsi ini hanya untuk perbaikan mendesak dan setelah Anda memahami serta menilai risiko perubahan tersebut.
Effective period: Mendefinisikan periode validitas untuk seluruh set aturan penjadwalan.
Scheduling calendar: Memungkinkan Anda mengikat penjadwalan ke kalender tertentu, seperti hanya dijalankan pada "hari perdagangan". Ini merupakan metode kontrol yang lebih fleksibel daripada penjadwalan "mingguan".
Instance generation mode
Setelah Anda menerapkan node ke sistem penjadwalan lingkungan produksi, platform menghasilkan instans terjadwal otomatis berdasarkan Instance Generation Mode yang dikonfigurasi pada node tersebut. Mode ini dapat berupa Next Day atau Immediately After Deployment. Terlepas dari mode yang Anda gunakan, Anda dapat melihat status dependensi terbaru tugas tersebut di halaman scheduled tasks di Operation Center. Namun, kapan recurring instance berlaku atau kapan dependensi diperbarui bergantung pada instance generation mode yang Anda pilih.
Untuk memastikan bahwa instans yang dihasilkan segera setelah penerapan dijadwalkan secara normal dan tidak menghasilkan "dry-run kedaluwarsa", pastikan scheduled time tugas tersebut setidaknya 10 menit setelah waktu penerapan tugas. Tugas tersebut menjalankan logika kodenya atau menghasilkan ulang instans berdasarkan konfigurasi baru pada scheduled time pertama yang terjadi setidaknya 10 menit setelah Anda menerapkan tugas tersebut.
Terlepas dari instance generation mode yang Anda pilih, perubahan yang dilakukan selama periode
23:30–24:00akan berlaku pada hari ketiga setelah node diterapkan ke lingkungan produksi. Hindari melakukan perubahan tugas selama periode waktu ini.
Metode Pembuatan Instance | Deskripsi |
Next Day |
|
Node menghasilkan instans untuk hari ini segera setelah penerapan. Instans yang dihasilkan dipicu secara normal hanya jika scheduled time-nya setidaknya 10 menit setelah waktu penerapan. Jika scheduled time lebih awal dari ambang batas ini (termasuk waktu lampau dan waktu dalam periode buffer), instans tersebut secara otomatis diatur ke status dry-run. Artinya, instans tersebut diatur ke sukses tanpa benar-benar menjalankan kode apa pun.
|
Tanggal efektif
Mendefinisikan rentang waktu valid untuk penjadwalan tugas otomatis. Setelah periode efektif tugas berakhir, tugas tersebut tidak lagi menghasilkan instans dan menjadi tugas kedaluwarsa. Anda dapat memantau dan mengelola tugas kedaluwarsa di O&M Dashboard.
Scheduling calendar
Untuk mendefinisikan properti penjadwalan suatu tugas, Anda dapat menggunakan dua jenis kalender berikut di DataWorks:
Kalender Default: Kalender bawaan DataWorks yang cocok untuk skenario umum.
Custom scheduling calendar: Anda dapat mendefinisikan kalender kustom yang cocok untuk industri dan skenario dengan kebutuhan tanggal penjadwalan fleksibel (seperti industri keuangan). Anda dapat mengonfigurasi aturan untuk ruang kerja tempat kalender tersebut berlaku, periode validitas kalender, dan metode penjadwalan untuk tugas pada tanggal tertentu. Untuk informasi lebih lanjut, lihat Konfigurasi scheduling calendar.
Anda harus menjadwalkan tugas pada waktu yang ditentukan berdasarkan scheduling calendar yang dipilih, dikombinasikan dengan konfigurasi penjadwalan lainnya seperti scheduling type dan scheduling time.
Kebijakan eksekusi
Konfigurasi ini mendefinisikan cara tugas dieksekusi setelah dipicu.
Scheduling type
DataWorks mendukung jenis penjadwalan berikut.
Jenis Penjadwalan | Dampak | Skenario |
Normal | Menjalankan kode dan memicu node hilir. | Tugas terjadwal yang berjalan dalam status Normal menghasilkan instans berulang yang juga dalam status Normal. |
Skip Execution | Saat waktu terjadwal instans tiba, instans tersebut tidak dijalankan dan statusnya berubah menjadi gagal. Ini memblokir node hilir. Menjeda penjadwalan sama dengan membekukan node di Operation Center. Node yang dijeda menampilkan ikon freeze | Cocok untuk menghentikan proses bisnis secara mendesak. Saat proses bisnis tidak perlu dijalankan untuk periode tertentu, Anda dapat memilih jenis penjadwalan ini untuk membekukan node akar proses bisnis tersebut. Saat proses bisnis perlu dijalankan kembali, Anda dapat membuka pembekuan node akar tersebut. Untuk informasi lebih lanjut tentang membuka pembekuan tugas, lihat Bekukan dan buka pembekuan tugas. |
Dry Run | Saat waktu terjadwal instans tiba, statusnya langsung diatur ke sukses (waktu eksekusi | Pilih jenis penjadwalan ini saat node tidak perlu dijalankan untuk periode tertentu, dan Anda tidak ingin memblokir node hilirnya agar tetap dapat dijalankan. |
Exception dan toleransi kesalahan
Ini merupakan bagian kunci dalam memastikan stabilitas tautan data. Bagian ini menyediakan solusi untuk berbagai exception yang mungkin terjadi.
Rerun properties: Menentukan apakah dan bagaimana sistem harus mencoba ulang tugas secara otomatis saat gagal.
Timeout settings: Menetapkan batas atas yang wajar untuk waktu eksekusi tugas. Jika batas waktu terlampaui, sistem dapat secara otomatis mengirim peringatan atau menghentikan tugas untuk mencegah satu node abnormal macet dan mengonsumsi terlalu banyak sumber daya.
Definisi timeout
Anda dapat menetapkan waktu eksekusi maksimum yang diizinkan untuk suatu tugas. Jika waktu eksekusi melebihi nilai ini, tugas tersebut akan secara otomatis dihentikan dan diatur ke status gagal. Hal ini mencegah tugas macet dalam waktu lama dan memengaruhi seluruh alur kerja.
Lingkup: Berlaku untuk recurring instances, instans data backfill, dan instans uji.
Nilai default: Defaultnya adalah 3 hingga 7 hari. Sistem menyesuaikan nilai ini secara dinamis berdasarkan beban aktual.
Batasan: Nilai maksimum yang dapat Anda tetapkan secara manual adalah 168 jam (7 hari), dan minimumnya adalah 1 menit.
Petunjuk rerun
Kebijakan rerun digunakan untuk memulihkan tugas yang gagal secara otomatis.
Saat menggunakan properti rerun, pastikan tugas bersifat idempoten (kecuali untuk tugas khusus) untuk menghindari masalah kualitas data setelah tugas gagal dan dicoba ulang. Misalnya, saat mengembangkan dalam ODPS SQL, gunakan pernyataan
insert overwritealih-alih pernyataaninsert into.
Rerun property: Menentukan apakah tugas dapat dicoba ulang.
Jenis
Skenario
Allow Regardless of Running Status
Cocok untuk tugas idempoten yang dapat dieksekusi ulang tanpa memengaruhi hasil.
Allow upon Failure Only
Mencegah kontaminasi data yang disebabkan oleh pencobaan ulang tugas yang berhasil secara tidak sengaja.
Disallow Regardless of Running Status
Cocok untuk tugas non-idempoten (seperti beberapa tugas sinkronisasi data). Jika Anda memilih opsi ini, fitur Auto Rerun upon Failure tidak akan tersedia.
Auto Rerun upon Failure: Saat tugas gagal, sistem secara otomatis memicu pencobaan ulang.
Parameter
Deskripsi
Number of re-runs
Jumlah percobaan ulang otomatis setelah kegagalan. Rentang: 1–10 kali.
Rerun interval
Interval waktu antara setiap percobaan ulang. Rentang: 1–30 menit.
CatatanKegagalan yang disebabkan oleh timeout tidak memicu percobaan ulang otomatis.
FAQ
T: Mengapa actual running time tugas saya berbeda dari scheduled time-nya?
J: Scheduled time hanyalah waktu mulai "yang diharapkan" untuk tugas tersebut. Eksekusi aktual memerlukan dua kondisi terpenuhi: ① Semua tugas dependensi hulu berhasil. ② Sumber daya penjadwalan tersedia. Jika salah satu kondisi tidak terpenuhi, tugas akan tetap dalam status menunggu.
T: Tugas hulu saya berjalan per jam, sedangkan tugas hilir saya berjalan harian. Apakah keduanya dapat saling bergantung?
J: Ya, bisa. DataWorks mendukung dependensi antar-tugas dengan siklus penjadwalan berbeda. Sistem menggunakan algoritma parsing dependensi kompleks untuk memastikan bahwa tugas hilir menunggu hingga semua instans hulunya selesai sebelum dijalankan. Untuk informasi lebih lanjut, lihat Prinsip dan contoh konfigurasi penjadwalan untuk skenario dependensi kompleks.
T: Mengapa variabel bizdate tidak menampilkan tanggal Jumat setelah saya mengisi ulang data untuk Jumat lalu?
J: Ini biasanya karena Anda keliru antara "business date" dan "running date". Di DataWorks, business date = scheduled time - 1 day. Saat Anda mengisi ulang data untuk tugas yang dijadwalkan berjalan pada dini hari Sabtu, business date yang perlu Anda pilih adalah Jumat.
T: Tugas saya menulis data. Apakah data akan duplikat jika tugas tersebut dicoba ulang?
J: Ya, mungkin saja. Oleh karena itu, kami sangat menyarankan agar Anda memastikan tugas tersebut bersifat idempoten. Untuk tugas penulisan data, gunakan
INSERT OVERWRITE(timpa) alih-alihINSERT INTO(tambahkan) untuk memastikan bahwa mencoba ulang tugas beberapa kali menghasilkan hasil yang sama.