Udostępnij za pośrednictwem


Job Router Operations - Upsert Worker

Tworzy lub aktualizuje proces roboczy.

PATCH {endpoint}/routing/workers/{workerId}?api-version=2023-11-01

Parametry identyfikatora URI

Nazwa W Wymagane Typ Opis
endpoint
path True

string

Identyfikator URI zasobu komunikacji

workerId
path True

string

Identyfikator procesu roboczego.

api-version
query True

string

Wersja interfejsu API do użycia dla tej operacji.

Nagłówek żądania

Media Types: "application/merge-patch+json"

Nazwa Wymagane Typ Opis
If-Match

string

Żądanie powinno być kontynuowane tylko wtedy, gdy jednostka jest zgodna z tym ciągiem.

If-Unmodified-Since

string

date-time-rfc7231

Żądanie powinno być kontynuowane tylko wtedy, gdy jednostka nie została zmodyfikowana po tym czasie.

Treść żądania

Media Types: "application/merge-patch+json"

Nazwa Typ Opis
availableForOffers

boolean

Flaga wskazująca, że ten proces roboczy jest otwarty, aby otrzymywać oferty.

capacity

integer

Łączny wynik pojemności, który ten proces roboczy musi zarządzać wieloma współbieżnych zadań.

channels

RouterChannel[]

Kolekcja kanałów, które ten proces roboczy może obsłużyć, oraz ich wpływ na wydajność procesów roboczych.

labels

Zestaw par klucz/wartość identyfikujących atrybuty używane przez aparaty reguł do podejmowania decyzji. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

queues

string[]

Kolekcja kolejek, z których ten proces roboczy może odbierać pracę.

tags

Zestaw atrybutów niezwiązanych z identyfikacją dołączonych do tego procesu roboczego. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

Odpowiedzi

Nazwa Typ Opis
200 OK

RouterWorker

Żądanie zakończyło się pomyślnie.

Headers

  • ETag: string
  • Last-Modified: string
201 Created

RouterWorker

Żądanie zakończyło się pomyślnie i w rezultacie został utworzony nowy zasób.

Headers

  • ETag: string
  • Last-Modified: string
Other Status Codes

Azure.Core.Foundations.ErrorResponse

Nieoczekiwana odpowiedź na błąd.

Headers

x-ms-error-code: string

Przykłady

Creates a worker
De-register an active worker
De-register an inactive worker
Register a worker
Updates a worker

Creates a worker

Sample Request

PATCH https://contoso.westus.communications.azure.com/routing/workers/WorkerId?api-version=2023-11-01

{
  "capacity": 10,
  "queues": [
    "MainQueue"
  ],
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "availableForOffers": false
}

Sample Response

{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}
{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}

De-register an active worker

Sample Request

PATCH https://contoso.westus.communications.azure.com/routing/workers/WorkerId?api-version=2023-11-01

{
  "availableForOffers": false,
  "capacity": 10
}

Sample Response

{
  "id": "WorkerId",
  "state": "draining",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}
{
  "id": "WorkerId",
  "state": "draining",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}

De-register an inactive worker

Sample Request

PATCH https://contoso.westus.communications.azure.com/routing/workers/WorkerId?api-version=2023-11-01

{
  "availableForOffers": false,
  "capacity": 10
}

Sample Response

{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}
{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}

Register a worker

Sample Request

PATCH https://contoso.westus.communications.azure.com/routing/workers/WorkerId?api-version=2023-11-01

{
  "availableForOffers": true,
  "capacity": 10
}

Sample Response

{
  "id": "WorkerId",
  "state": "active",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": true,
  "etag": "etag"
}
{
  "id": "WorkerId",
  "state": "active",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": true,
  "etag": "etag"
}

Updates a worker

Sample Request

PATCH https://contoso.westus.communications.azure.com/routing/workers/WorkerId?api-version=2023-11-01

{
  "capacity": 10,
  "queues": [
    "MainQueue",
    "SecondaryQueue"
  ],
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "availableForOffers": false
}

Sample Response

{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}
{
  "id": "WorkerId",
  "state": "inactive",
  "queues": [
    "MainQueue"
  ],
  "capacity": 10,
  "labels": {},
  "tags": {},
  "channels": [
    {
      "channelId": "CustomChatChannel",
      "capacityCostPerJob": 11,
      "maxNumberOfJobs": 4
    },
    {
      "channelId": "CustomVoiceChannel",
      "capacityCostPerJob": 10,
      "maxNumberOfJobs": 1
    }
  ],
  "offers": [],
  "assignedJobs": [],
  "loadRatio": 0,
  "availableForOffers": false,
  "etag": "etag"
}

Definicje

Nazwa Opis
Azure.Core.Foundations.Error

Obiekt error.

Azure.Core.Foundations.ErrorResponse

Odpowiedź zawierająca szczegóły błędu.

Azure.Core.Foundations.InnerError

Obiekt zawierający bardziej szczegółowe informacje o błędzie. Zgodnie z wytycznymi interfejsu MICROSOFT One API — https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

RouterChannel

Reprezentuje pojemność, która będzie zużywać zadanie w tym kanale z procesu roboczego.

RouterJobOffer

Oferta pracy dla pracownika.

RouterWorker

Jednostka, do którą mają być kierowane zadania.

RouterWorkerAssignment

Przypisanie procesu roboczego do zadania.

RouterWorkerCreateOrUpdate

Jednostka, do którą mają być kierowane zadania.

RouterWorkerState

Wyliczenia dla stanów procesów roboczych.

Azure.Core.Foundations.Error

Obiekt error.

Nazwa Typ Opis
code

string

Jeden z zdefiniowanych przez serwer zestaw kodów błędów.

details

Azure.Core.Foundations.Error[]

Tablica szczegółów dotyczących określonych błędów, które doprowadziły do tego zgłoszonego błędu.

innererror

Azure.Core.Foundations.InnerError

Obiekt zawierający bardziej szczegółowe informacje niż bieżący obiekt o błędzie.

message

string

Czytelna dla człowieka reprezentacja błędu.

target

string

Element docelowy błędu.

Azure.Core.Foundations.ErrorResponse

Odpowiedź zawierająca szczegóły błędu.

Nazwa Typ Opis
error

Azure.Core.Foundations.Error

Obiekt error.

Azure.Core.Foundations.InnerError

Obiekt zawierający bardziej szczegółowe informacje o błędzie. Zgodnie z wytycznymi interfejsu MICROSOFT One API — https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.

Nazwa Typ Opis
code

string

Jeden z zdefiniowanych przez serwer zestaw kodów błędów.

innererror

Azure.Core.Foundations.InnerError

Błąd wewnętrzny.

RouterChannel

Reprezentuje pojemność, która będzie zużywać zadanie w tym kanale z procesu roboczego.

Nazwa Typ Opis
capacityCostPerJob

integer

Ilość pojemności zużywanej przez wystąpienie zadania tego kanału całkowitej pojemności procesu roboczego.

channelId

string

Identyfikator kanału.

maxNumberOfJobs

integer

Maksymalna liczba zadań, które mogą być obsługiwane współbieżnie dla tego kanału. Wartość musi być większa niż zero.

RouterJobOffer

Oferta pracy dla pracownika.

Nazwa Typ Opis
capacityCost

integer

Koszt pojemności zużywany przez ofertę zadania.

expiresAt

string

Znacznik czasu wygaśnięcia oferty w formacie UTC.

jobId

string

Identyfikator zadania.

offerId

string

Identyfikator oferty.

offeredAt

string

Sygnatura czasowa utworzenia oferty w formacie UTC.

RouterWorker

Jednostka, do którą mają być kierowane zadania.

Nazwa Typ Opis
assignedJobs

RouterWorkerAssignment[]

Lista przypisanych zadań dołączonych do tego procesu roboczego.

availableForOffers

boolean

Flaga wskazująca, że ten proces roboczy jest otwarty, aby otrzymywać oferty.

capacity

integer

Łączny wynik pojemności, który ten proces roboczy musi zarządzać wieloma współbieżnych zadań.

channels

RouterChannel[]

Kolekcja kanałów, które ten proces roboczy może obsłużyć, oraz ich wpływ na wydajność procesów roboczych.

etag

string

Tag jednostki dla tego zasobu.

id

string

Identyfikator procesu roboczego.

labels

Zestaw par klucz/wartość identyfikujących atrybuty używane przez aparaty reguł do podejmowania decyzji. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

loadRatio

number

Wartość wskazująca pojemność procesów roboczych. Wartość "1" oznacza, że jest zużywana cała pojemność. Wartość "0" oznacza, że obecnie nie jest zużywana żadna pojemność.

offers

RouterJobOffer[]

Lista aktywnych ofert wystawionych dla tego procesu roboczego.

queues

string[]

Kolekcja kolejek, z których ten proces roboczy może odbierać pracę.

state

RouterWorkerState

Bieżący stan procesu roboczego.

tags

Zestaw atrybutów niezwiązanych z identyfikacją dołączonych do tego procesu roboczego. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

RouterWorkerAssignment

Przypisanie procesu roboczego do zadania.

Nazwa Typ Opis
assignedAt

string

Czas przypisania zadania w formacie UTC.

assignmentId

string

Identyfikator przypisania.

capacityCost

integer

Ilość pojemności używanej przez to przypisanie w ramach procesu roboczego.

jobId

string

Identyfikator przydzielonego zadania.

RouterWorkerCreateOrUpdate

Jednostka, do którą mają być kierowane zadania.

Nazwa Typ Opis
availableForOffers

boolean

Flaga wskazująca, że ten proces roboczy jest otwarty, aby otrzymywać oferty.

capacity

integer

Łączny wynik pojemności, który ten proces roboczy musi zarządzać wieloma współbieżnych zadań.

channels

RouterChannel[]

Kolekcja kanałów, które ten proces roboczy może obsłużyć, oraz ich wpływ na wydajność procesów roboczych.

labels

Zestaw par klucz/wartość identyfikujących atrybuty używane przez aparaty reguł do podejmowania decyzji. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

queues

string[]

Kolekcja kolejek, z których ten proces roboczy może odbierać pracę.

tags

Zestaw atrybutów niezwiązanych z identyfikacją dołączonych do tego procesu roboczego. Wartości muszą być wartościami pierwotnymi — liczba, ciąg, wartość logiczna.

RouterWorkerState

Wyliczenia dla stanów procesów roboczych.

Nazwa Typ Opis
active

string

Proces roboczy jest aktywny i dostępny do skorzystania z ofert.

draining

string

Proces roboczy nie jest aktywny, jeśli istnieją oferty, które są odwoływane. Nie są wysyłane żadne nowe oferty.

inactive

string

Proces roboczy nie jest aktywny. Nie są wysyłane żadne nowe oferty.