Gestire una coda
Questa guida illustra i passaggi per creare e gestire una coda del router processo.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Facoltativo: Completare la guida introduttiva per iniziare a usare Il router di processo
Creare un criterio di distribuzione e una coda
Per creare una coda semplice in Router processo, usare l'SDK per specificare l'ID coda, il nome e un ID dei criteri di distribuzione. I criteri di distribuzione devono essere creati in anticipo perché il router del processo convaliderà la sua esistenza al momento della creazione della coda. Nell'esempio seguente viene creato un criterio di distribuzione per controllare la modalità di generazione delle offerte di processi per i ruoli di lavoro.
var distributionPolicy = await administrationClient.CreateDistributionPolicyAsync(
new CreateDistributionPolicyOptions(
distributionPolicyId: "Longest_Idle_45s_Min1Max10",
offerExpiresAfter: TimeSpan.FromSeconds(45),
mode: new LongestIdleMode { MinConcurrentOffers = 1, MaxConcurrentOffers = 10 })
{
Name = "Longest Idle matching with a 45s offer expiration; min 1, max 10 offers",
});
var queue = await administrationClient.CreateQueueAsync(
new CreateQueueOptions(
queueId: "XBOX_DEFAULT_QUEUE",
distributionPolicyId: distributionPolicy.Value.Id)
{
Name = "XBOX Default Queue"
});
const distributionPolicy = await client.path("/routing/distributionPolicies/{distributionPolicyId}", "Longest_Idle_45s_Min1Max10").patch({
body: {
offerExpiresAfterSeconds: 45,
mode: {
kind: "longestIdle",
minConcurrentOffers: 1,
maxConcurrentOffers: 10
},
name: "Longest Idle matching with a 45s offer expiration; min 1, max 10 offers"
},
contentType: "application/merge-patch+json"
});
const queue = await client.path("/routing/queues/{queueId}", "XBOX_DEFAULT_QUEUE").patch({
body: {
distributionPolicyId: distributionPolicy.body.id,
name: "XBOX Default Queue"
},
contentType: "application/merge-patch+json"
});
distribution_policy = administration_client.upsert_distribution_policy(
distribution_policy_id = "Longest_Idle_45s_Min1Max10",
offer_expires_after = timedelta(seconds = 45),
mode = LongestIdleMode(min_concurrent_offers = 1, max_concurrent_offers = 10),
name = "Longest Idle matching with a 45s offer expiration; min 1, max 10 offers"
)
queue = administration_client.upsert_queue(
queue_id = "XBOX_DEFAULT_QUEUE",
name = "XBOX Default Queue",
distribution_policy_id = distribution_policy.id
)
DistributionPolicy distributionPolicy = administrationClient.createDistributionPolicy(new CreateDistributionPolicyOptions(
"Longest_Idle_45s_Min1Max10",
Duration.ofSeconds(45),
new LongestIdleMode().setMinConcurrentOffers(1).setMaxConcurrentOffers(10))
.setName("Longest Idle matching with a 45s offer expiration; min 1, max 10 offers"));
RouterQueue queue = administrationClient.createQueue(new CreateQueueOptions(
"XBOX_DEFAULT_QUEUE",
distributionPolicy.getId())
.setName("XBOX Default Queue"));
Aggiornare una coda
Job Router SDK aggiornerà una coda esistente quando viene chiamato il UpdateQueueAsync
metodo .
queue.Name = "XBOX Updated Queue";
queue.Labels.Add("Additional-Queue-Label", new RouterValue("ChatQueue"));
await administrationClient.UpdateQueueAsync(queue);
await administrationClient.path("/routing/queues/{queueId}", queue.body.id).patch({
body: {
name: "XBOX Updated Queue",
labels: { "Additional-Queue-Label": "ChatQueue" }
},
contentType: "application/merge-patch+json"
});
queue.name = "XBOX Updated Queue"
queue.labels["Additional-Queue-Label"] = "ChatQueue"
administration_client.upsert_queue(queue.id, queue)
queue.setName("XBOX Updated Queue");
queue.setLabels(Map.of("Additional-Queue-Label", new RouterValue("ChatQueue")));
administrationClient.updateQueue(queue.getId(), BinaryData.fromObject(queue), null);
Eliminare una coda
Per eliminare una coda usando Job Router SDK, chiamare il DeleteQueue
metodo passando l'ID coda.
await administrationClient.DeleteQueueAsync(queue.Value.Id);
await client.path("/routing/queues/{queueId}", queue.body.id).delete();
administration_client.delete_queue(queue.id)
administrationClient.deleteQueue(queue.getId());
Nota
Per eliminare una coda è necessario assicurarsi che non vi siano processi attivi assegnati. Assicurarsi inoltre che non siano presenti riferimenti alla coda in alcun criterio di classificazione.