Określanie elementu docelowego preferowanego procesu roboczego
W kontekście centrum telefonicznego klienci mogą mieć przypisanego menedżera kont lub mieć relację z określonym procesem roboczym. W związku z tym należy w miarę możliwości kierować określone zadanie do określonego procesu roboczego.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- Opcjonalnie: ukończ przewodnik Szybki start, aby rozpocząć pracę z routerem zadań
Konfigurowanie selektorów procesów roboczych
Każdy proces roboczy automatycznie ma etykietę Id
. Selektory procesów roboczych można zastosować do zadania, aby kierować do określonego procesu roboczego.
W poniższym przykładzie tworzone jest zadanie przeznaczone dla określonego procesu roboczego. Jeśli ten proces roboczy nie akceptuje zadania w okresie wygaśnięcia oferty 1 minuty, warunek dla określonego procesu roboczego nie jest już prawidłowy i zadanie może przejść do dowolnego procesu roboczego.
await client.CreateJobAsync(
new CreateJobOptions(jobId: "job1", channelId: "Xbox_Chat_Channel", queueId: queue.Value.Id)
{
RequestedWorkerSelectors =
{
new RouterWorkerSelector(key: "Id", labelOperator: LabelOperator.Equal, value: new RouterValue("<preferred_worker_id>")) {
Expedite = true,
ExpiresAfter = TimeSpan.FromSeconds(45)
}
}
});
await client.path("/routing/jobs/{jobId}", "job1").patch({
body: {
channelId: "Xbox_Chat_Channel",
queueId: queue.body.id,
requestedWorkerSelectors: [
{
key: "Id",
labelOperator: "equal",
value: "<preferred worker id>",
expiresAfterSeconds: 45
}]
},
contentType: "application/merge-patch+json"
});
client.upsert_job(job_id = "job1",
channel_id = "Xbox_Chat_Channel",
queue_id = queue.id,
requested_worker_selectors = [
RouterWorkerSelector(
key = "Id",
label_operator = LabelOperator.EQUAL,
value = "<preferred worker id>",
expires_after_seconds = 45
)
]
)
client.createJob(new CreateJobOptions("job1", "Xbox_Chat_Channel", queue.getId())
.setRequestedWorkerSelectors(List.of(
new RouterWorkerSelector("Id", LabelOperator.EQUAL, new RouterValue("<preferred_worker_id>"))
.setExpiresAfter(Duration.ofSeconds(45.0))
.setExpedite(true))));
Napiwek
Można również użyć dowolnej etykiety niestandardowej, która jest unikatowa dla każdego procesu roboczego.