Topik ini menjelaskan bagaimana transisi waktu daylight saving time (DST) memengaruhi pembuatan instans task dan waktu penjadwalannya, serta kebijakan DataWorks dalam menangani transisi tersebut di wilayah yang menerapkan DST.
Cara kerja
DataWorks secara otomatis menangani pergantian DST untuk memastikan task berjalan dengan benar pada hari transisi. Contoh berikut menggambarkan cara DataWorks menangani logika transisi DST untuk task per jam di wilayah US West:
-
Saat DST dimulai:
-
Jumlah instans: DST dimulai pada pukul
02:00. Jam maju satu jam, sehingga waktu bergeser dari02:00ke03:00. Akibatnya, tidak ada instans yang dibuat pada pukul02:00, dan task per jam menghasilkan 23 instans pada hari tersebut. -
Waktu penjadwalan instans: Pergeseran waktu ini menyesuaikan waktu eksekusi terjadwal untuk beberapa task. Misalnya, instans keempat dari task per jam, yang biasanya dijadwalkan pada pukul
04:00, dijadwalkan pada pukul05:00pada hari DST dimulai.
Catatan-
Pada hari DST dimulai, jika task harian, mingguan, atau bulanan dijadwalkan selama jam yang dilewati, task tersebut tidak akan dijalankan dan sistem menetapkan instans-nya sebagai dry-run.
-
Pada hari tersebut, mengurangi 10 menit dari pukul
03:00menghasilkan01:50.
-
-
Saat DST berakhir:
Jumlah instans: Task per jam menghasilkan 24 instans. Dua instans dibuat untuk jam
02:00, tetapi hanya instans untuk jam02:00kedua yang dipertahankan.CatatanPada hari tersebut, mengurangi 10 menit dari pukul
03:00menghasilkan02:50.
Batasan
Transisi DST hanya memengaruhi task di wilayah yang menerapkan daylight saving time.
Dampak saat DST dimulai
Dampak 1: Pembuatan instans
-
Skenario 1: Dampak pada task per jam dan per menit.
Pertimbangkan task per jam yang dikonfigurasi sebagai berikut. Dalam kondisi normal, task tersebut menghasilkan satu instans per jam dengan total 24 instans per hari. Pada hari DST dimulai, hanya 23 instans yang dihasilkan karena instans untuk pukul
02:00dilewati.CatatanDST dimulai pada pukul
02:00. Jam maju satu jam, bergeser dari02:00ke03:00. Oleh karena itu, tidak ada instans yang dibuat pada pukul02:00.Konfigurasi penjadwalan menggunakan mode interval per jam. Waktu Mulai adalah 00:00, Waktu Selesai adalah 23:59, dan tanggal efektif diatur ke Always. Ini sesuai dengan ekspresi cron
00 00 00-23/1 * * ?. -
Skenario 2: Dampak terhadap tugas harian.
Task harian tetap menghasilkan satu instans pada hari DST dimulai, tetapi eksekusinya bergantung pada waktu penjadwalan.
-
Jika waktu penjadwalan berada di antara
02:00 dan 03:00, sistem menunda waktu penjadwalan selama satu jam dan menetapkan instans menjadi Empty run. -
Jika waktu penjadwalan berada di luar rentang
02:00 hingga 03:00, task berjalan secara normal.
Dalam konfigurasi penjadwalan, siklus penjadwalan diatur ke Daily, waktu terjadwal adalah
02:00, dan tanggal efektif diatur ke Always. Ini sesuai dengan ekspresi cron00 00 02 * * ?. -
Dampak 2: Penggantian parameter
-
Skenario 1: Jika task memiliki waktu penjadwalan pukul
03:00dan parameter penjadwalan$[hh24-1/24], nilai parameter tersebut biasanya diselesaikan menjadi02:00. Saat DST dimulai, nilainya diselesaikan menjadi01:00. -
Skenario 2: Jika task memiliki waktu penjadwalan pukul
02:00dan parameter penjadwalan$[hh24-1/24], nilai parameter tersebut biasanya diselesaikan menjadi01:00. Saat DST dimulai, nilainya tetap diselesaikan menjadi01:00. Jika ini adalah task harian, sistem menetapkan instans untuk hari tersebut sebagai dry-run.
Dampak saat DST berakhir
Dampak 1: Pembuatan instans
Untuk task per jam, hari saat DST berakhir berlangsung selama 25 jam dan mencakup dua jam 02:00. Namun, task tetap hanya menghasilkan 24 instans, dengan hanya mempertahankan instans dari jam 02:00 kedua.
Dampak 2: Penggantian parameter
Pada hari DST berakhir, hari tersebut berlangsung selama 25 jam karena jam 02:00 terjadi dua kali. Task per jam tetap hanya menghasilkan 24 instans, dengan hanya mempertahankan instans dari jam 02:00 kedua. Jika parameter penjadwalan task melibatkan perhitungan berdasarkan waktu penjadwalan instans, hari 25 jam ini dapat menyebabkan offset, seperti yang diilustrasikan dalam skenario berikut.
-
Skenario 1: Jika task memiliki waktu penjadwalan pukul
03:00dan parameter penjadwalan$[hh24-2/24], nilai parameter tersebut biasanya diselesaikan menjadi01:00. Saat DST berakhir, nilainya diselesaikan menjadi02:00. -
Skenario 2: Jika task memiliki waktu penjadwalan pukul
02:00dan parameter penjadwalan$[hh24-1/24], nilai parameter tersebut biasanya diselesaikan menjadi01:00. Saat DST berakhir, nilainya diselesaikan menjadi02:00.