Share via


鎖定慣用的背景工作角色

在客服中心中,客戶可能會被指派給一位帳戶管理員,或與特定工作者建立關聯。 同理,您也會希望能盡可能將特定工作路由至特定的背景工作角色。

必要條件

設定背景工作角色選取器

每個背景工作角色都會自動擁有一個 Id 標籤。 您可以將背景工作角色選取器套用至工作以鎖定特定的背景工作角色。

在下列範例中,我們建立了一個鎖定特定背景工作角色的工作。 如果特定背景工作角色在 1 分鐘的供應項目到期持續時間內沒有接受作業,則該背景工作角色的條件將不再有效,而且該作業可以移至任何背景工作角色。

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))));

提示

您也可以使用任何各背景工作角色獨有的自訂標籤。