Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Warning
Azure Communication Services wprowadza nowatorskie zmiany, a niektóre usługi są wycofywane. Dowiedz się więcej w przewodniku po zmianach emerytalnych i przełamowych.
Polityka wyjątków to zestaw reguł definiujących działania, które należy wykonać, gdy warunek zostanie spełniony. Te zasady można zapisać w routerze zadań, a następnie dołączyć je do co najmniej jednej kolejki.
Triggers
Następujące wyzwalacze mogą służyć do akcji:
Długość kolejki — Uruchamia się, gdy długość kolejki przekracza określony próg podczas dodawania zadania do kolejki.
Czas oczekiwania — Uruchamia się, gdy zadanie czeka w kolejce dla określonego progu.
Po wyzwoleniu tych wyzwalaczy będą wykonywać co najmniej jedną akcję i wysyłać zdarzenie wyzwalane przez wyjątek za pośrednictwem usługi Event Grid.
Akcje
Anuluj- Anuluje zadanie i usuwa je z kolejki.
Przeklasyfikować - Ponownie zastosowuje określoną politykę klasyfikacji z zmodyfikowanymi etykietami do zadania.
Ręczna klasyfikacja — Modyfikuje selektory kolejki, priorytetu i pracowników w zadaniu.
Examples
W poniższym przykładzie skonfigurujemy zasady wyjątków, które spowodują anulowanie zadania przed dołączeniem do kolejki o długości większej niż 100.
await administrationClient.CreateExceptionPolicyAsync(new CreateExceptionPolicyOptions(
exceptionPolicyId: "maxQueueLength",
exceptionRules: new List<ExceptionRule>
{
new (id: "cancelJob",
trigger: new QueueLengthExceptionTrigger(threshold: 100),
actions: new List<ExceptionAction>{ new CancelExceptionAction() })
}) { Name = "Max Queue Length Policy" });
await administrationClient.path("/routing/exceptionPolicies/{exceptionPolicyId}", "maxQueueLength").patch({
body: {
name: "Max Queue Length Policy",
exceptionRules: [
{
id: "cancelJob",
trigger: { kind: "queueLength", threshold: 100 },
actions: [{ kind: "cancel" }]
}
]
}
});
administration_client.upsert_exception_policy(
exception_policy_id = "maxQueueLength",
name = "Max Queue Length Policy",
exception_rules = [
ExceptionRule(
id = "cancelJob",
trigger = QueueLengthExceptionTrigger(threshold = 100),
actions = [ CancelExceptionAction() ]
)
]
)
administrationClient.createExceptionPolicy(new CreateExceptionPolicyOptions("maxQueueLength",
List.of(new ExceptionRule(
"cancelJob",
new QueueLengthExceptionTrigger(100),
List.of(new CancelExceptionAction())))
).setName("Max Queue Length Policy"));
W poniższym przykładzie skonfigurujemy zasady wyjątków z regułami, które będą:
- Ustaw priorytet zadania na 10 po oczekiwaniu w kolejce przez 1 minutę.
- Przenieś zadanie do
queue2folderu po odczekaniu 5 minut.
await administrationClient.CreateExceptionPolicyAsync(new CreateExceptionPolicyOptions(
exceptionPolicyId: "policy2",
exceptionRules: new List<ExceptionRule>
{
new(
id: "increasePriority",
trigger: new WaitTimeExceptionTrigger(threshold: TimeSpan.FromMinutes(1)),
actions: new List<ExceptionAction>
{
new ManualReclassifyExceptionAction { Priority = 10 }
}),
new(
id: "changeQueue",
trigger: new WaitTimeExceptionTrigger(threshold: TimeSpan.FromMinutes(5)),
actions: new List<ExceptionAction>
{
new ManualReclassifyExceptionAction { QueueId = "queue2" }
})
}) { Name = "Escalation Policy" });
await administrationClient.path("/routing/exceptionPolicies/{exceptionPolicyId}", "policy2").patch({
body: {
name: "Escalation Policy",
exceptionRules: [
{
id: "increasePriority",
trigger: { kind: "waitTime", thresholdSeconds: "60" },
actions: [{ "manual-reclassify", priority: 10 }]
},
{
id: "changeQueue",
trigger: { kind: "waitTime", thresholdSeconds: "300" },
actions: [{ kind: "manual-reclassify", queueId: "queue2" }]
}]
},
contentType: "application/merge-patch+json"
});
administration_client.upsert_exception_policy(
exception_policy_id = "policy2",
name = "Escalation Policy",
exception_rules = [
ExceptionRule(
id = "increasePriority",
trigger = WaitTimeExceptionTrigger(threshold_seconds = 60),
actions = [ ManualReclassifyExceptionAction(priority = 10) ]
),
ExceptionRule(
id = "changeQueue",
trigger = WaitTimeExceptionTrigger(threshold_seconds = 60),
actions = [ ManualReclassifyExceptionAction(queue_id = "queue2") ]
)
]
)
administrationClient.createExceptionPolicy(new CreateExceptionPolicyOptions("policy2", List.of(
new ExceptionRule("increasePriority", new WaitTimeExceptionTrigger(Duration.ofMinutes(1)),
List.of(new ManualReclassifyExceptionAction().setPriority(10))),
new ExceptionRule("changeQueue", new WaitTimeExceptionTrigger(Duration.ofMinutes(5)),
List.of(new ManualReclassifyExceptionAction().setQueueId("queue2"))))
).setName("Escalation Policy"));