Jak uzyskać szacowany czas oczekiwania i pozycję zadania
W kontekście centrum telefonicznego klienci mogą chcieć wiedzieć, jak długo muszą czekać przed połączeniem z agentem. W związku z tym router zadań może obliczyć szacowany czas oczekiwania lub położenie zadania w kolejce.
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ń
- Opcjonalnie: Ukończ instrukcje akceptowania ofert pracy
Uzyskiwanie szacowanego czasu oczekiwania i długości kolejki
Szacowany czas oczekiwania dla kolejki z elementem jest pobierany przez wywołanie GetQueueStatisticsAsync
i sprawdzenie EstimatedWaitTimeMinutes
właściwości. Szacowany czas oczekiwania jest grupowany według priorytetu zadania. Router zadania zwraca również długość kolejki i najdłuższe zadanie oczekujące w kolejce.
var queueStatistics = await client.GetQueueStatisticsAsync(queueId: "queue1");
Console.WriteLine($"Queue statistics: {JsonSerializer.Serialize(queueStatistics.Value)}");
var queueStatistics = await client.path("/routing/queues/{queueId}/statistics", "queue-1").get();
console.log(`Queue statistics: ${JSON.stringify(queueStatistics.body)}`);
queue_statistics = client.get_queue_statistics(queue_id = "queue1")
print("Queue statistics: " + queue_statistics)
RouterQueueStatistics queueStatistics = client.getQueueStatisticsWithResponse("queue1").getValue();
System.out.println("Queue statistics: " + BinaryData.fromObject(queueStatistics).toString());
Wykonanie powyższego kodu powinno spowodować wyświetlenie komunikatu podobnego do następującego fragmentu kodu (uwaga: EstimatedWaitTimeMinutes
właściwość jest pogrupowana według priorytetu zadania):
Queue statistics: { "QueueId":"queue1", "Length": 15, "EstimatedWaitTimeMinutes": { "1": 10 }, "LongestJobWaitTimeMinutes": 4.724 }
Uzyskiwanie szacowanego czasu oczekiwania i położenia zadania w kolejce
Szacowany czas oczekiwania dla zadania o identyfikatorze job1
jest pobierany przez wywołanie GetQueuePositionAsync
i sprawdzenie EstimatedWaitTimeMinutes
właściwości. Router zadania zwraca również pozycję zadania w kolejce.
var queuePositionDetails = await client.GetQueuePositionAsync(jobId: "job1");
Console.WriteLine($"Queue position details: {JsonSerializer.Serialize(queuePositionDetails.Value)}");
var queuePositionDetails = await client.path("/routing/jobs/{jobId}/position", "job1").get();
console.log(`Queue position details: ${JSON.stringify(queuePositionDetails.body)}`);
queue_position_details = client.get_queue_position(job_id = "job1")
print("Queue position details: " + queue_position_details)
var queuePositionDetails = client.getQueuePosition("job1");
System.out.println("Queue position details: " + new GsonBuilder().toJson(queuePositionDetails));
Wykonanie powyższego kodu powinno spowodować wyświetlenie komunikatu podobnego do następującego fragmentu kodu:
Queue position details: { "JobId": "job1", "Position": 4, "QueueId": "queue1", "QueueLength":15, "EstimatedWaitTimeMinutes": 5 }