Membuat pemicu yang menjalankan alur pada jadwal
BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menyediakan informasi tentang pemicu jadwal dan langkah-langkah untuk membuat, memulai, dan memantau pemicu jadwal. Untuk jenis pemicu lainnya, lihat Eksekusi dan pemicu alur.
Saat membuat pemicu jadwal, Anda menentukan jadwal seperti tanggal mulai, pengulangan, atau tanggal akhir untuk pemicu dan mengaitkannya dengan alur. Alur dan pemicu memiliki hubungan banyak ke banyak. Beberapa pemicu dapat memulai satu alur. Satu pemicu dapat memulai beberapa alur.
Bagian berikut ini menyediakan langkah-langkah untuk membuat pemicu jadwal dengan cara yang berbeda.
Pengalaman portal Azure Data Factory dan Azure Synapse
Anda dapat membuat pemicu jadwal untuk menjadwalkan alur agar berjalan secara berkala, seperti per jam atau harian.
Catatan
Untuk panduan lengkap membuat alur dan pemicu jadwal, yang mengaitkan pemicu dengan alur dan menjalankan dan memantau alur, lihat Mulai Cepat: Membuat pabrik data dengan menggunakan UI Data Factory.
Beralih ke tab Edit di Data Factory atau tab Integrasikan di Azure Synapse.
Pilih Pemicu pada menu, lalu pilih Baru/Edit.
Pada halaman Tambahkan pemicu , pilih Pilih pemicu, lalu pilih Baru.
Pada halaman Pemicu baru:
Konfirmasikan bahwa Jadwal dipilih untuk Jenis.
Tentukan tanggal mulai pemicu untuk Tanggal Mulai. Ini disetel ke tanggal waktu saat ini di Waktu Universal Terkoordinasi (UTC) secara default.
Tentukan zona waktu tempat pemicu dibuat. Pengaturan zona waktu berlaku untuk Tanggal Mulai, Tanggal Selesai, dan Waktu Eksekusi Jadwal di opsi Pengulangan tingkat lanjut. Mengubah pengaturan Zona Waktu tidak secara otomatis mengubah tanggal mulai Anda. Pastikan tanggal mulai sudah benar di zona waktu yang ditentukan. Waktu Eksekusi Terjadwal Pemicu dianggap pasca tanggal mulai. (Pastikan bahwa tanggal mulai setidaknya 1 menit kurang dari waktu eksekusi atau memicu alur di pengulangan berikutnya.)
Catatan
Untuk zona waktu yang mengamati penghematan siang hari, waktu pemicu akan disesuaikan secara otomatis untuk perubahan dua kali setahun, jika pengulangan diatur ke Hari atau di atasnya. Untuk menolak perubahan musim panas, pilih zona waktu yang tidak mengamati musim panas, misalnya, UTC.
Penyesuaian penghematan siang hari hanya terjadi untuk pemicu dengan pengulangan yang diatur ke Hari atau di atasnya. Jika pemicu diatur ke frekuensi Jam atau Menit , pemicu akan terus diaktifkan secara berkala.
Tentukan Pengulangan untuk pemicunya. Pilih salah satu nilai dari daftar dropdown (Setiap menit, Per Jam, Harian, Mingguan, atau Bulanan). Masukkan pengali dalam kotak teks. Misalnya, jika Anda ingin pemicu berjalan sekali selama setiap 15 menit, Anda memilih Setiap Menit dan memasukkan 15 di kotak teks.
Di bawah Pengulangan, jika Anda memilih Hari, Minggu, atau Bulan dari daftar dropdown, Anda dapat melihat Opsi pengulangan tingkat lanjut.
Untuk menentukan waktu tanggal akhir, pilih Tentukan tanggal selesai. Tentukan informasi Berakhir Pada, lalu pilih OK.
Biaya dikaitkan dengan setiap eksekusi alur. Jika Anda menguji, Anda mungkin ingin memastikan bahwa alur hanya dipicu beberapa kali. Namun, pastikan ada cukup waktu bagi alur untuk dieksekusi di antara waktu penerbitan dan waktu selesai. Pemicu mulai berlaku hanya setelah Anda menerbitkan solusi, bukan saat Anda menyimpan pemicu di antarmuka pengguna.
Di jendela Pemicu Baru, pilih Ya di opsi Diaktifkan , lalu pilih OK. Anda dapat menggunakan kotak centang ini untuk menonaktifkan pemicunya nanti.
Di jendela Pemicu Baru, tinjau pesan peringatan lalu pilih OK.
Pilih Terbitkan semua untuk menerbitkan perubahan. Sampai Anda menerbitkan perubahan, pemicu tidak mulai memicu eksekusi alur.
Beralih ke tab Eksekusi alur di sebelah kiri, lalu pilih Refresh untuk merefresh daftar. Anda melihat eksekusi alur yang dipicu oleh pemicu terjadwal. Perhatikan nilai di kolom Dipicu oleh. Jika Anda menggunakan opsi Picu Sekarang , Anda akan melihat pemicu manual berjalan dalam daftar.
Beralih ke tampilan Jadwal Eksekusi>pemicu.
Azure PowerShell
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Bagian ini memperlihatkan kepada Anda cara menggunakan Azure PowerShell untuk membuat, memulai, dan memantau pemicu jadwal. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Buat pabrik data dengan menggunakan Azure PowerShell. Kemudian, tambahkan kode berikut ke metode utama untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline
yang Anda buat sebagai bagian dari mulai cepat.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Azure PowerShell. Ikuti petunjuk di Memasang Azure PowerShell di Windows dengan PowerShellGet.
Kode Sampel
Buat file JSON bernama MyTrigger.json di folder *C:\ADFv2QuickStartPSH* dengan konten berikut:
Penting
Sebelum Anda menyimpan file JSON, atur nilai
startTime
elemen ke waktu UTC saat ini. Atur nilaiendTime
elemen ke satu jam melewati waktu UTC saat ini.{ "properties": { "name": "MyTrigger", "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Minute", "interval": 15, "startTime": "2017-12-08T00:00:00Z", "endTime": "2017-12-08T01:00:00Z", "timeZone": "UTC" } }, "pipelines": [{ "pipelineReference": { "type": "PipelineReference", "referenceName": "Adfv2QuickStartPipeline" }, "parameters": { "inputPath": "adftutorial/input", "outputPath": "adftutorial/output" } } ] } }
Dalam cuplikan JSON:
Elemen
type
pemicu diatur keScheduleTrigger
.Elemen
frequency
diatur keMinute
daninterval
elemen diatur ke15
. Dengan demikian, pemicu menjalankan alur setiap 15 menit antara waktu mulai dan berakhir.Elemen
timeZone
menentukan zona waktu tempat pemicu dibuat. Pengaturan ini memengaruhi danstartTime
endTime
.Elemen
endTime
ini adalah satu jam setelah nilaistartTime
elemen . Dengan demikian, pemicu menjalankan alur 15 menit, 30 menit, dan 45 menit setelah waktu mulai. Jangan lupa untuk memperbarui waktu mulai ke waktu UTC saat ini dan waktu akhir hingga satu jam melewati waktu mulai.Penting
Untuk zona waktu UTC,
startTime
danendTime
perlu mengikuti formatyyyy-MM-ddTHH:mm:ss
Z. Untuk zona waktu lainnya,startTime
danendTime
ikuti formatnyayyyy-MM-ddTHH:mm:ss
.Sesuai standar ISO 8601,
Z
akhiran digunakan untuk menandai tanda waktu ke zona waktu UTC dan merendertimeZone
bidang tidak berguna. Jika akhiranZ
untuk zona waktu UTC hilang, hasilnya adalah kesalahan setelah aktivasi pemicu.Pemicu dikaitkan dengan
Adfv2QuickStartPipeline
alur. Untuk mengaitkan beberapa alur dengan pemicu, tambahkan lebihpipelineReference
banyak bagian.Alur dalam mulai cepat mengambil dua
parameters
nilai:inputPath
danoutputPath
. Anda meneruskan nilai untuk parameter ini dari pemicu.
Buat pemicu dengan menggunakan cmdlet Set-AzDataFactoryV2Trigger:
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Konfirmasikan bahwa status pemicu Dihentikan dengan menggunakan cmdlet Get-AzDataFactoryV2Trigger:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Mulai pemicu dengan menggunakan cmdlet Set-AzDataFactoryV2Trigger:
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Konfirmasikan bahwa status pemicu Dimulai dengan menggunakan cmdlet Get-AzDataFactoryV2Trigger:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Jalankan pemicu di Azure PowerShell dengan menggunakan cmdlet Get-AzDataFactoryV2TriggerRun. Untuk mendapatkan informasi tentang pemicu berjalan, jalankan perintah berikut secara berkala.
TriggerRunStartedAfter
Perbarui nilai danTriggerRunStartedBefore
agar sesuai dengan nilai dalam definisi pemicu Anda:Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Catatan
Waktu pemicu pemicu jadwal ditentukan dalam tanda waktu UTC.
TriggerRunStartedAfter
danTriggerRunStartedBefore
juga mengharapkan tanda waktu UTC.Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.
Azure CLI
Bagian ini memperlihatkan kepada Anda cara menggunakan Azure CLI untuk membuat, memulai, dan memantau pemicu jadwal. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Buat Azure Data Factory dengan menggunakan Azure CLI. Kemudian, ikuti langkah-langkah untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline
yang Anda buat sebagai bagian dari mulai cepat.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Kode Sampel
Di direktori kerja Anda, buat file JSON bernama MyTrigger.json dengan properti pemicu. Untuk contoh ini, gunakan konten berikut:
Penting
Sebelum Anda menyimpan file JSON, atur nilai
startTime
elemen ke waktu UTC saat ini. Atur nilaiendTime
elemen ke satu jam melewati waktu UTC saat ini.{ "name": "MyTrigger", "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Minute", "interval": 15, "startTime": "2017-12-08T00:00:00Z", "endTime": "2017-12-08T01:00:00Z", "timeZone": "UTC" } }, "pipelines": [{ "pipelineReference": { "type": "PipelineReference", "referenceName": "Adfv2QuickStartPipeline" }, "parameters": { "inputPath": "adftutorial/input", "outputPath": "adftutorial/output" } } ] }
Dalam cuplikan JSON:
Elemen
type
pemicu diatur keScheduleTrigger
.Elemen
frequency
diatur keMinute
daninterval
elemen diatur ke15
. Dengan demikian, pemicu menjalankan alur setiap 15 menit antara waktu mulai dan berakhir.Elemen
timeZone
menentukan zona waktu tempat pemicu dibuat. Pengaturan ini memengaruhi danstartTime
endTime
.Elemen
endTime
ini adalah satu jam setelah nilaistartTime
elemen . Dengan demikian, pemicu menjalankan alur 15 menit, 30 menit, dan 45 menit setelah waktu mulai. Jangan lupa untuk memperbarui waktu mulai ke waktu UTC saat ini dan waktu akhir hingga satu jam melewati waktu mulai.Penting
Untuk zona waktu UTC,
startTime
dan endTime perlu mengikuti formatyyyy-MM-ddTHH:mm:ss
Z. Untuk zona waktu lainnya,startTime
danendTime
ikuti formatnyayyyy-MM-ddTHH:mm:ss
.Sesuai standar ISO 8601, akhiran Z digunakan untuk menandai tanggalwaktu ke zona waktu UTC dan merender
timeZone
bidang tidak berguna. Jika akhiran Z hilang untuk zona waktu UTC, hasilnya adalah kesalahan saat aktivasi pemicu.Pemicu dikaitkan dengan
Adfv2QuickStartPipeline
alur. Untuk mengaitkan beberapa alur dengan pemicu, tambahkan lebihpipelineReference
banyak bagian.Alur dalam mulai cepat mengambil dua
parameters
nilai:inputPath
danoutputPath
. Anda meneruskan nilai untuk parameter ini dari pemicu.
Buat pemicu dengan menggunakan perintah az datafactory trigger create:
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
Konfirmasikan bahwa status pemicu Dihentikan dengan menggunakan perintah az datafactory trigger show:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Mulai pemicu dengan menggunakan perintah az datafactory trigger start:
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Konfirmasikan bahwa status pemicu Dimulai dengan menggunakan perintah az datafactory trigger show:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Dapatkan eksekusi pemicu di Azure CLI dengan menggunakan perintah az datafactory trigger-run query-by-factory . Untuk mendapatkan informasi tentang eksekusi pemicu, jalankan perintah berikut secara berkala.
last-updated-after
Perbarui nilai danlast-updated-before
agar sesuai dengan nilai dalam definisi pemicu Anda:az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
Catatan
Waktu pemicu pemicu jadwal ditentukan dalam tanda waktu UTC. last-update-after dan last-updated-before juga mengharapkan tanda waktu UTC.
Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.
.NET SDK
Bagian ini memperlihatkan kepada Anda cara menggunakan .NET SDK untuk membuat, memulai, dan memantau pemicu. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Buat pabrik data dengan menggunakan .NET SDK. Kemudian, tambahkan kode berikut ke metode utama untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline
yang Anda buat sebagai bagian dari mulai cepat.
Kemudian, tambahkan kode berikut ke metode utama, yang membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit.
// Create the trigger
Console.WriteLine("Creating the trigger");
// Set the start time to the current UTC time
DateTime startTime = DateTime.UtcNow;
// Specify values for the inputPath and outputPath parameters
Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
pipelineParameters.Add("inputPath", "adftutorial/input");
pipelineParameters.Add("outputPath", "adftutorial/output");
// Create a schedule trigger
string triggerName = "MyTrigger";
ScheduleTrigger myTrigger = new ScheduleTrigger()
{
Pipelines = new List<TriggerPipelineReference>()
{
// Associate the Adfv2QuickStartPipeline pipeline with the trigger
new TriggerPipelineReference()
{
PipelineReference = new PipelineReference(pipelineName),
Parameters = pipelineParameters,
}
},
Recurrence = new ScheduleTriggerRecurrence()
{
// Set the start time to the current UTC time and the end time to one hour after the start time
StartTime = startTime,
TimeZone = "UTC",
EndTime = startTime.AddHours(1),
Frequency = RecurrenceFrequency.Minute,
Interval = 15,
}
};
// Now, create the trigger by invoking the CreateOrUpdate method
TriggerResource triggerResource = new TriggerResource()
{
Properties = myTrigger
};
client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);
// Start the trigger
Console.WriteLine("Starting the trigger");
client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);
Untuk membuat pemicu di zona waktu yang berbeda, selain UTC, pengaturan berikut diperlukan:
<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
Untuk memantau eksekusi pemicu, tambahkan kode berikut sebelum pernyataan terakhir Console.WriteLine
dalam sampel:
// Check that the trigger runs every 15 minutes
Console.WriteLine("Trigger runs. You see the output every 15 minutes");
for (int i = 0; i < 3; i++)
{
System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
Console.WriteLine("{0} trigger runs found", triggerRuns.Count);
foreach (TriggerRun run in triggerRuns)
{
foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
{
PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
}
}
}
Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.
Python SDK
Bagian ini memperlihatkan kepada Anda cara menggunakan Python SDK untuk membuat, memulai, dan memantau pemicu. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Buat pabrik data dengan menggunakan Python SDK. Kemudian, tambahkan blok kode berikut setelah monitor the pipeline run
blok kode di skrip Python. Kode ini membuat pemicu jadwal berjalan setiap 15 menit antara waktu mulai dan selesai yang ditentukan. start_time
Perbarui variabel ke waktu UTC saat ini dan end_time
variabel menjadi satu jam melewati waktu UTC saat ini.
# Create a trigger
tr_name = 'mytrigger'
scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
pipelines_to_run = []
pipeline_reference = PipelineReference('copyPipeline')
pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)
# Start the trigger
adf_client.triggers.start(rg_name, df_name, tr_name)
Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.
Templat Azure Resource Manager
Anda dapat menggunakan templat Azure Resource Manager untuk membuat pemicu. Untuk instruksi langkah demi langkah, lihat Membuat pabrik data Azure dengan menggunakan templat Azure Resource Manager.
Meneruskan waktu mulai pemicu ke alur
Azure Data Factory versi 1 mendukung membaca atau menulis data yang dipartisi dengan menggunakan variabel SliceStart
sistem , , SliceEnd
, WindowStart
dan WindowEnd
. Dalam versi alur Data Factory dan Azure Synapse saat ini, Anda dapat mencapai perilaku ini dengan menggunakan parameter alur. Waktu mulai dan waktu terjadwal untuk pemicu ditetapkan sebagai nilai untuk parameter alur. Dalam contoh berikut, waktu terjadwal untuk pemicu diteruskan sebagai nilai ke parameter alur scheduledRunTime
:
"parameters": {
"scheduledRunTime": "@trigger().scheduledTime"
}
Skema JSON
Definisi JSON berikut menunjukkan kepada Anda cara membuat pemicu jadwal dengan penjadwalan dan pengulangan:
{
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": <<Minute, Hour, Day, Week, Month>>,
"interval": <<int>>, // Optional, specifies how often to fire (default to 1)
"startTime": <<datetime>>,
"endTime": <<datetime - optional>>,
"timeZone": "UTC"
"schedule": { // Optional (advanced scheduling specifics)
"hours": [<<0-23>>],
"weekDays": [<<Monday-Sunday>>],
"minutes": [<<0-59>>],
"monthDays": [<<1-31>>],
"monthlyOccurrences": [
{
"day": <<Monday-Sunday>>,
"occurrence": <<1-5>>
}
]
}
}
},
"pipelines": [
{
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "<Name of your pipeline>"
},
"parameters": {
"<parameter 1 Name>": {
"type": "Expression",
"value": "<parameter 1 Value>"
},
"<parameter 2 Name>" : "<parameter 2 Value>"
}
}
]
}
}
Penting
Properti parameters
adalah properti wajib dari pipelines
elemen . Jika alur Anda tidak mengambil parameter apa pun, Anda harus menyertakan definisi JSON kosong untuk properti .parameters
Gambaran umum Skema
Tabel berikut ini memberikan gambaran umum tingkat tinggi tentang elemen skema utama yang terkait dengan pengulangan dan penjadwalan pemicu.
Penting
Untuk zona waktu UTC, startTime
dan endTime
perlu mengikuti format yyyy-MM-ddTHH:mm:ss
Z. Untuk zona waktu lainnya, startTime
dan endTime
ikuti formatnya yyyy-MM-ddTHH:mm:ss
.
Sesuai standar ISO 8601, akhiran Z digunakan untuk menandai tanggalwaktu ke zona waktu UTC dan merender timeZone
bidang tidak berguna. Jika akhiran Z hilang untuk zona waktu UTC, hasilnya adalah kesalahan saat aktivasi pemicu.
Default, batasan, dan contoh skema
Properti JSON | Jenis | Wajib | Nilai default | Nilai yang valid | Contoh |
---|---|---|---|---|---|
startTime |
String | Ya | Tidak | ISO-8601 Date-Times | Untuk zona waktu UTC: "startTime" : "2013-01-09T09:30:00-08:00Z" Untuk zona waktu lainnya: "2013-01-09T09:30:00-08:00" |
timeZone |
String | Ya | Tidak | Nilai zona waktu | "UTC" |
recurrence |
Objek | Ya | Tidak | Objek pengulangan | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
interval |
Number | No | 1 | 1 sampai 1.000 | "interval":10 |
endTime |
String | Ya | Tidak | Nilai Tanggal-Waktu yang mewakili waktu di masa mendatang | Untuk zona waktu UTC: "endTime" : "2013-02-09T09:30:00-08:00Z" Untuk zona waktu lainnya: "endTime" : "2013-02-09T09:30:00-08:00" |
schedule |
Objek | No | Tidak | Objek jadwal | "schedule" : { "minute" : [30], "hour" : [8,17] } |
Opsi zona waktu
Berikut adalah beberapa zona waktu yang didukung untuk pemicu jadwal.
Zona waktu | Offset UTC (Penghematan non-siang hari) | nilai zona waktu | Amati penghematan siang hari | Format stempel waktu |
---|---|---|---|---|
Waktu Universal Terkoordinasi | 0 | UTC |
No | 'yyyy-MM-ddTHH:mm:ssZ' |
Waktu Pasifik (PT) | -8 | Pacific Standard Time |
Ya | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Tengah (CT) | -6 | Central Standard Time |
Ya | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Timur (ET) | 5- | Eastern Standard Time |
Ya | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Rata-Rata Greenwich (GMT) | 0 | GMT Standard Time |
Ya | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Standar Eropa Tengah | +1 | W. Europe Standard Time |
Ya | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Standar India (IST) | +5:30 | India Standard Time |
No | 'yyyy-MM-ddTHH:mm:ss' |
Waktu Standar Tiongkok | 8+ | China Standard Time |
No | 'yyyy-MM-ddTHH:mm:ss' |
Daftar ini tidak lengkap. Untuk daftar lengkap opsi zona waktu, lihat halaman Pembuatan pemicu di portal.
Properti startTime
Tabel berikut ini memperlihatkan kepada Anda bagaimana startTime
properti mengontrol eksekusi pemicu.
nilai startTime | Pengulangan tanpa jadwal | Pengulangan dengan jadwal |
---|---|---|
Waktu mulai di masa lalu | Menghitung waktu eksekusi di masa mendatang pertama setelah waktu mulai dan berjalan pada saat itu. Menjalankan eksekusi berikutnya berdasarkan penghitungan dari waktu eksekusi terakhir. Lihat contoh yang mengikuti tabel ini. |
Pemicu dimulai tidak lebih cepat dari waktu mulai yang ditentukan. Kemunculan pertama didasarkan pada jadwal yang dihitung dari waktu mulai. Menjalankan eksekusi berikutnya berdasarkan jadwal pengulangan. |
Waktu mulai di masa depan atau saat ini | Berjalan sekali pada waktu mulai yang ditentukan. Menjalankan eksekusi berikutnya berdasarkan penghitungan dari waktu eksekusi terakhir. |
Pemicu dimulai tidak lebih cepat dari waktu mulai yang ditentukan. Kemunculan pertama didasarkan pada jadwal yang dihitung dari waktu mulai. Menjalankan eksekusi berikutnya berdasarkan jadwal pengulangan. |
Mari kita lihat contoh apa yang terjadi ketika waktu mulai di masa lalu, dengan pengulangan, tetapi tidak ada jadwal. Asumsikan bahwa waktu saat ini adalah 2017-04-08 13:00
, waktu mulai adalah 2017-04-07 14:00
,dan pengulangannya yaitu setiap dua hari. (Nilai recurrence
ditentukan dengan mengatur frequency
properti ke day
dan interval
properti ke 2
.) Perhatikan bahwa startTime
nilai berada di masa lalu dan terjadi sebelum waktu saat ini.
Dalam kondisi ini, eksekusi pertama adalah 2017-04-09
pada 14:00
. Mesin Scheduler menghitung kemunculan eksekusi dari waktu mulai. Instans apa pun yang sudah berlalu dibuang. Mesin menggunakan instans berikutnya yang terjadi di masa depan. Dalam skenario ini, waktu mulai adalah 2017-04-07
pada 2:00pm
, jadi instans berikutnya adalah dua hari dari waktu itu, yang 2017-04-09
berada di 2:00pm
.
Waktu eksekusi pertama sama meskipun startTime
nilainya adalah 2017-04-05 14:00
atau 2017-04-01 14:00
. Setelah eksekusi pertama, eksekusi berikutnya dihitung menggunakan jadwal. Oleh karena itu, eksekusi berikutnya berada di 2017-04-11
di 2:00pm
, kemudian 2017-04-13
di 2:00pm
, kemudian 2017-04-15
di 2:00pm
, dan sebagainya.
Terakhir, ketika jam atau menit tidak diatur dalam jadwal pemicu, jam atau menit eksekusi pertama digunakan sebagai default.
properti jadwal
Penggunaan jadwal dapat membatasi jumlah eksekusi pemicu. Misalnya, jika pemicu dengan frekuensi bulanan dijadwalkan hanya berjalan pada hari ke-31, pemicu hanya berjalan pada bulan-bulan yang memiliki hari ke-31.
Jadwal juga dapat memperluas jumlah eksekusi pemicu. Misalnya, pemicu dengan frekuensi bulanan yang dijadwalkan berjalan pada hari 1 dan 2 dalam sebulan, berjalan pada hari pertama dan kedua dalam sebulan, bukan sebulan sekali.
Jika beberapa schedule
elemen ditentukan, urutan evaluasi adalah dari pengaturan jadwal terbesar hingga terkecil. Evaluasi dimulai dengan nomor minggu, lalu hari bulan, hari kerja, jam, dan akhirnya, menit.
Tabel berikut ini menjelaskan schedule
elemen secara rinci.
Elemen JSON | Deskripsi | Nilai yang valid |
---|---|---|
minutes |
Menit dari jam di mana pemicu berjalan. |
|
hours |
Jam dari hari tempat pemicu berjalan. |
|
weekDays |
Hari-hari dalam seminggu di mana pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan. |
|
monthlyOccurrences |
Hari dalam bulan tempat pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan. |
|
monthDays |
Hari dalam seminggu ketika pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan. |
|
Contoh jadwal pengulangan pemicu
Bagian ini menyediakan contoh jadwal pengulangan dan berfokus pada schedule
objek dan elemennya.
Contoh mengasumsikan bahwa interval
nilainya adalah 1
dan bahwa frequency
nilainya benar sesuai dengan definisi jadwal. Misalnya, Anda tidak dapat memiliki frequency
nilai day
dan juga memiliki monthDays
modifikasi dalam schedule
objek. Pembatasan seperti ini disebutkan dalam tabel di bagian sebelumnya.
Contoh | Deskripsi |
---|---|
{"hours":[5]} |
Jalankan pada pukul 05.00 tiap hari. |
{"minutes":[15], "hours":[5]} |
Berjalan pukul 5.15 setiap hari. |
{"minutes":[15], "hours":[5,17]} |
Berjalan pukul 5.15 dan 17.15 setiap hari. |
{"minutes":[15,45], "hours":[5,17]} |
Berjalan pukul 5.15, 5.45, 17.15, dan 17.45 setiap hari. |
{"minutes":[0,15,30,45]} |
Berjalan setiap 15 menit. |
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} |
Jalankan tiap jam. Pemicu ini berjalan tiap jam. Menit dikontrol oleh startTime nilai, ketika nilai ditentukan. Jika nilai tidak ditentukan, menit dikontrol oleh waktu pembuatan. Misalnya, jika waktu mulai atau waktu pembuatan (mana saja yang berlaku) adalah 12.25, pemicu berjalan pukul 00.25, 01.25, 02.25, ..., dan 23.25.Jadwal ini setara dengan memiliki pemicu dengan frequency nilai hour , interval nilai 1 , dan tidak ada schedule . Jadwal ini dapat digunakan dengan nilai dan interval yang berbeda frequency untuk membuat pemicu lain. Misalnya, ketika frequency nilainya adalah month , jadwal hanya berjalan sekali sebulan, bukan setiap hari, ketika frequency nilainya adalah day . |
{"minutes":[0]} |
Jalankan tiap jam pada jam. Pemicu ini berlangsung setiap jam pada jam mulai pukul 12.00, 01.00, 02.00, dan sebagainya. Jadwal ini setara dengan pemicu dengan frequency nilai hour dan startTime nilai nol menit, atau tidak schedule kecuali frequency nilai day . frequency Jika nilainya adalah week atau month , jadwal dijalankan masing-masing satu hari seminggu atau satu hari sebulan saja. |
{"minutes":[15]} |
Berjalan pada 15 menit yang lalu setiap jam. Pemicu ini berlangsung setiap jam pada 15 menit melewati jam mulai pukul 00:15, 01:15, 02:15, dan sebagainya, dan berakhir pada pukul 23:15. |
{"hours":[17], "weekDays":["saturday"]} |
Jalankan pukul 17.00 pada hari Sabtu tiap minggu. |
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Jalankan pukul 17.00 pada hari Senin, Rabu, dan Jumat tiap minggu. |
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Berjalan pukul 17.15 dan 17.45 pada hari Senin, Rabu, dan Jumat setiap minggu. |
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Jalankan tiap 15 menit pada hari kerja. |
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Berjalan setiap 15 menit pada hari kerja antara pukul 09:00 dan 16:45. |
{"weekDays":["tuesday", "thursday"]} |
Jalankan pada hari Selasa dan Kamis pada waktu mulai yang ditentukan. |
{"minutes":[0], "hours":[6], "monthDays":[28]} |
Jalankan pada pukul 06.00 pada hari ke-28 setiap bulan (dengan asumsi frequency month nilai ). |
{"minutes":[0], "hours":[6], "monthDays":[-1]} |
Berjalan pada pukul 06.00 di hari terakhir dalam sebulan. Untuk menjalankan pemicu pada hari terakhir sebulan, gunakan -1, bukan tanggal 28, 29, 30, atau 31. |
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} |
Berjalan pada pukul 06.00 pada hari pertama dan terakhir setiap bulan. |
{monthDays":[1,14]} |
Berjalan pada hari pertama dan ke-14 setiap bulan pada waktu mulai yang ditentukan. |
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Berjalan pada hari Jumat pertama setiap bulan pada pukul 05.00. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Jalankan pada hari Jumat pertama tiap bulan pada waktu mulai yang ditentukan. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} |
Jalankan pada hari Jumat ketiga dari akhir bulan, tiap bulan, pada waktu mulai yang ditentukan. |
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Berjalan pada hari Jumat pertama dan terakhir setiap bulan pukul 05:15. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Jalankan pada hari Jumat pertama dan terakhir tiap bulan pada waktu mulai yang ditentukan. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} |
Jalankan pada hari Jumat kelima tiap bulan pada waktu mulai yang ditentukan. Ketika tidak ada Jumat kelima dalam sebulan, alur tidak berjalan karena dijadwalkan untuk berjalan hanya pada hari Jumat kelima. Untuk menjalankan pemicu pada Jumat terakhir yang terjadi dalam sebulan, pertimbangkan untuk menggunakan -1, bukan 5 untuk nilai tersebut occurrence . |
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} |
Berjalan setiap 15 menit pada hari Jumat terakhir dari bulan. |
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} |
Berjalan pukul 05.15, 05.45, 17.15, dan 17.45 pada hari Rabu ketiga setiap bulan. |
Konten terkait
- Untuk informasi selengkapnya tentang pemicu, lihat Eksekusi dan pemicu alur.
- Untuk mempelajari cara mereferensikan metadata pemicu dalam alur, lihat Referensi memicu metadata dalam eksekusi alur.