Kebijakan Pengecualian
Penting
Fungsionalitas yang dijelaskan pada bagian ini saat ini dalam pratinjau pribadi. Pratinjau pribadi mencakup akses ke SDK dan dokumentasi untuk tujuan pengujian yang belum tersedia untuk umum. Daftar untuk menjadi pengadopsi awal dengan mengisi formulir untuk akses pratinjau ke Azure Communication Services.
Kebijakan Pengecualian adalah seperangkat aturan yang menentukan tindakan apa yang harus dijalankan saat kondisi dipicu. Anda dapat menyimpan kebijakan ini di dalam Job Router dan melampirkannya ke satu atau beberapa Antrean.
Pemicu
Pemicu berikut dapat digunakan untuk mendorong tindakan:
Panjang Antrean - Diaktifkan saat panjang antrean melebihi ambang yang ditentukan saat menambahkan pekerjaan ke antrean.
Waktu Tunggu - Diaktifkan ketika pekerjaan telah menunggu dalam antrean untuk ambang yang ditentukan.
Saat pemicu ini diaktifkan, pemicu ini akan menjalankan satu atau beberapa tindakan dan mengirim Peristiwa yang Dipicu Pengecualian melalui Event Grid.
Tindakan
Batal - Membatalkan pekerjaan dan menghapusnya dari antrean.
Mengklasifikasi ulang - Menerapkan kembali Kebijakan Klasifikasi yang ditentukan dengan label yang dimodifikasi ke pekerjaan.
Manual Reclassify - Memodifikasi antrean, prioritas, dan pemilih pekerja ke pekerjaan.
Contoh
Dalam contoh berikut, kami mengonfigurasi Kebijakan Pengecualian yang akan membatalkan pekerjaan sebelum bergabung dengan antrean dengan panjang lebih besar dari 100.
await client.SetExceptionPolicyAsync(
id: "policy-1",
name: "My Exception Policy",
rules: new List<ExceptionRule>
{
new ExceptionRule(
id: "rule-1",
trigger: new QueueLengthExceptionTrigger(threshold: 100),
actions: new List<ExceptionAction>
{
new CancelExceptionAction("cancel-action")
})
});
await client.upsertExceptionPolicy({
id: "policy-1",
name: "My Exception Policy",
exceptionRules: [
{
id: "rule-1",
trigger: { kind: "queue-length", threshold: 100 },
actions: [
{ kind: "cancel", id: "cancel-action" }
]
}
]
});
Dalam contoh berikut, kami mengonfigurasi Kebijakan Pengecualian dengan aturan yang akan:
- Atur prioritas pekerjaan ke 10 setelah menunggu dalam antrean selama 1 menit.
- Pindahkan pekerjaan ke
queue-2setelah menunggu selama 5 menit.
await client.SetExceptionPolicyAsync(
id: "policy-1",
name: "My Exception Policy",
rules: new List<ExceptionRule>
{
new ExceptionRule(
id: "rule-1",
trigger: new WaitTimeExceptionTrigger(TimeSpan.FromMinutes(1)),
actions: new List<ExceptionAction>
{
new ManualReclassifyExceptionAction(id: "action1", priority: 10)
}),
new ExceptionRule(
id: "rule-2",
trigger: new WaitTimeExceptionTrigger(TimeSpan.FromMinutes(5)),
actions: new List<ExceptionAction>
{
new ManualReclassifyExceptionAction(id: "action2", queueId: "queue-2")
})
});
await client.upsertExceptionPolicy({
id: "policy-1",
name: "My Exception Policy",
exceptionRules: [
{
id: "rule-1",
trigger: { kind: "wait-time", threshold: "00:01:00" },
actions: [
{ kind: "manual-reclassify", id: "action1", priority: 10 }
]
},
{
id: "rule-2",
trigger: { kind: "wait-time", threshold: "00:05:00" },
actions: [
{ kind: "manual-reclassify", id: "action2", queueId: "queue-2" }
]
}
]
});