Add Claims for api ref
Change-Id: Id9ac39f69b3e042f61ee9ae6d2abbca36c7a4e34
This commit is contained in:
parent
cb01e40555
commit
721925c921
216
api-ref/source/claims.inc
Normal file
216
api-ref/source/claims.inc
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
===============
|
||||||
|
Claims (claims)
|
||||||
|
===============
|
||||||
|
|
||||||
|
Claim messages
|
||||||
|
==============
|
||||||
|
|
||||||
|
.. rest_method:: POST /v2//queues/{queue_name}/claims
|
||||||
|
|
||||||
|
Claims a set of messages from the specified queue.
|
||||||
|
|
||||||
|
This operation claims a set of messages (up to the value of the ``limit``
|
||||||
|
parameter) from oldest to newest and skips any messages that are already
|
||||||
|
claimed. If no unclaimed messages are available, the API returns a
|
||||||
|
``204 No Content`` message.
|
||||||
|
|
||||||
|
When a client (worker) finishes processing a message, it should delete the
|
||||||
|
message before the claim expires to ensure that the message is processed only
|
||||||
|
once. As part of the delete operation, workers should specify the claim ID
|
||||||
|
(which is best done by simply using the provided href). If workers perform
|
||||||
|
these actions, then if a claim simply expires, the server can return an error
|
||||||
|
and notify the worker of the race condition. This action gives the worker a
|
||||||
|
chance to roll back its own processing of the given message because another
|
||||||
|
worker can claim the message and process it.
|
||||||
|
|
||||||
|
The age given for a claim is relative to the server's clock. The claim's age
|
||||||
|
is useful for determining how quickly messages are getting processed and
|
||||||
|
whether a given message's claim is about to expire.
|
||||||
|
|
||||||
|
When a claim expires, it is released. If the original worker failed to process
|
||||||
|
the message, another client worker can then claim the message.
|
||||||
|
|
||||||
|
Note that claim creation is best-effort, meaning the worker may claim and
|
||||||
|
return less than the requested number of messages.
|
||||||
|
|
||||||
|
The ``ttl`` attribute specifies how long the server waits before releasing
|
||||||
|
the claim. The ttl value must be between 60 and 43200 seconds (12 hours).
|
||||||
|
You must include a value for this attribute in your request.
|
||||||
|
|
||||||
|
The ``grace`` attribute specifies the message grace period in seconds. The
|
||||||
|
value of ``grace`` value must be between 60 and 43200 seconds (12 hours).
|
||||||
|
You must include a value for this attribute in your request. To deal with
|
||||||
|
workers that have stopped responding (for up to 1209600 seconds or 14 days,
|
||||||
|
including claim lifetime), the server extends the lifetime of claimed messages
|
||||||
|
to be at least as long as the lifetime of the claim itself, plus the specified
|
||||||
|
grace period. If a claimed message would normally live longer than the grace
|
||||||
|
period, its expiration is not adjusted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 201
|
||||||
|
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
- Unauthorized(401)
|
||||||
|
- Forbidden(403)
|
||||||
|
- itemNotFound(404)
|
||||||
|
- ServiceUnavailable(503)
|
||||||
|
|
||||||
|
Request Parameters
|
||||||
|
------------------
|
||||||
|
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- queue_name: queue_name
|
||||||
|
- limit: claim_limit
|
||||||
|
- ttl: claim_ttl
|
||||||
|
- grace: claim_grace
|
||||||
|
|
||||||
|
**Example Claim Messages: JSON request**
|
||||||
|
|
||||||
|
|
||||||
|
.. literalinclude:: samples/claim_messages_request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
**Example Claim Messages: JSON response**
|
||||||
|
|
||||||
|
|
||||||
|
.. literalinclude:: samples/claim_messages_response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Query Claim
|
||||||
|
===========
|
||||||
|
|
||||||
|
.. rest_method:: GET /v2/queues/{queue_name}/claims/{claim_id}
|
||||||
|
|
||||||
|
Queries the specified claim for the specified queue.
|
||||||
|
|
||||||
|
This operation queries the specified claim for the specified queue. Claims
|
||||||
|
with malformed IDs or claims that are not found by ID are ignored.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 200
|
||||||
|
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
- Unauthorized(401)
|
||||||
|
- Forbidden(403)
|
||||||
|
- itemNotFound(404)
|
||||||
|
- ServiceUnavailable(503)
|
||||||
|
|
||||||
|
Request Parameters
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- queue_name: queue_name
|
||||||
|
- claim_id: claim_id
|
||||||
|
|
||||||
|
Response Parameters
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
**Example Query Claim: JSON response**
|
||||||
|
|
||||||
|
|
||||||
|
.. literalinclude:: samples/claim_query_response.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Update(Renew) Claim
|
||||||
|
===================
|
||||||
|
|
||||||
|
.. rest_method:: PATCH /v2/queues/{queue_name}/claims/{claim_id}
|
||||||
|
|
||||||
|
Updates the specified claim for the specified queue.
|
||||||
|
|
||||||
|
This operation updates the specified claim for the specified queue. Claims
|
||||||
|
with malformed IDs or claims that are not found by ID are ignored.
|
||||||
|
|
||||||
|
Clients should periodically renew claims during long-running batches of work
|
||||||
|
to avoid losing a claim while processing a message. The client can renew a
|
||||||
|
claim by issuing a ``PATCH`` command to a specific claim resource and
|
||||||
|
including a new TTL for the claim (which can be different from the original
|
||||||
|
TTL). The server resets the age of the claim and applies the new TTL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 204
|
||||||
|
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
- Unauthorized(401)
|
||||||
|
- Forbidden(403)
|
||||||
|
- itemNotFound(404)
|
||||||
|
- ServiceUnavailable(503)
|
||||||
|
|
||||||
|
Request Parameters
|
||||||
|
------------------
|
||||||
|
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- queue_name: queue_name
|
||||||
|
- claim_id: claim_id
|
||||||
|
- ttl: claim_ttl
|
||||||
|
- grace: claim_grace
|
||||||
|
|
||||||
|
**Example Update Claim: JSON request**
|
||||||
|
|
||||||
|
|
||||||
|
.. literalinclude:: samples/claim_update_request.json
|
||||||
|
:language: javascript
|
||||||
|
|
||||||
|
|
||||||
|
This operation does not return a response body.
|
||||||
|
|
||||||
|
|
||||||
|
Delete(Release) Claim
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. rest_method:: DELETE /v2/queues/{queue_name}/claims/{claim_id}
|
||||||
|
|
||||||
|
Releases the specified claim for the specified queue.
|
||||||
|
|
||||||
|
This operation immediately releases a claim, making any remaining, undeleted)
|
||||||
|
messages that are associated with the claim available to other workers. Claims
|
||||||
|
with malformed IDs or claims that are not found by ID are ignored.
|
||||||
|
|
||||||
|
This operation is useful when a worker is performing a graceful shutdown,
|
||||||
|
fails to process one or more messages, or is taking longer than expected to
|
||||||
|
process messages, and wants to make the remainder of the messages available
|
||||||
|
to other workers.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Normal response codes: 204
|
||||||
|
|
||||||
|
Error response codes:
|
||||||
|
|
||||||
|
- Unauthorized(401)
|
||||||
|
- Forbidden(403)
|
||||||
|
- itemNotFound(404)
|
||||||
|
- ServiceUnavailable(503)
|
||||||
|
|
||||||
|
Request Parameters
|
||||||
|
------------------
|
||||||
|
|
||||||
|
|
||||||
|
.. rest_parameters:: parameters.yaml
|
||||||
|
|
||||||
|
- queue_name: queue_name
|
||||||
|
- claim_id: claim_id
|
||||||
|
|
||||||
|
|
||||||
|
This operation does not accept a request body and does not return a response
|
||||||
|
body.
|
@ -19,3 +19,4 @@ Messaging Service API v2 (CURRENT)
|
|||||||
|
|
||||||
.. include:: versions.inc
|
.. include:: versions.inc
|
||||||
.. include:: queues.inc
|
.. include:: queues.inc
|
||||||
|
.. include:: claims.inc
|
||||||
|
@ -15,6 +15,13 @@ queue_name:
|
|||||||
description: |
|
description: |
|
||||||
The name of the queue.
|
The name of the queue.
|
||||||
|
|
||||||
|
claim_id:
|
||||||
|
type: string
|
||||||
|
in: path
|
||||||
|
required: True
|
||||||
|
description: |
|
||||||
|
The id of the claim.
|
||||||
|
|
||||||
#### variables in query ######################################################
|
#### variables in query ######################################################
|
||||||
|
|
||||||
limit:
|
limit:
|
||||||
@ -36,6 +43,41 @@ marker:
|
|||||||
initial limited request and use the ID of the last-seen item from the
|
initial limited request and use the ID of the last-seen item from the
|
||||||
response as the ``marker`` parameter value in a subsequent limited request.
|
response as the ``marker`` parameter value in a subsequent limited request.
|
||||||
|
|
||||||
|
claim_limit:
|
||||||
|
type: integer
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
The ``limit`` specifies up to 20 messages (configurable) to claim. If not
|
||||||
|
specified, limit defaults to 10. Note that claim creation is best-effort,
|
||||||
|
meaning the server may claim and return less than the requested number of
|
||||||
|
messages.
|
||||||
|
|
||||||
|
#### variables in request ####################################################
|
||||||
|
|
||||||
|
claim_ttl:
|
||||||
|
type: integer
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
The ``ttl`` attribute specifies how long the server waits before releasing
|
||||||
|
the claim. The ttl value must be between 60 and 43200 seconds (12 hours).
|
||||||
|
You must include a value for this attribute in your request.
|
||||||
|
|
||||||
|
claim_grace:
|
||||||
|
type: integer
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
description: |
|
||||||
|
The ``grace`` attribute specifies the message grace period in seconds. The
|
||||||
|
value of ``grace`` value must be between 60 and 43200 seconds (12 hours).
|
||||||
|
You must include a value for this attribute in your request. To deal with
|
||||||
|
workers that have stopped responding (for up to 1209600 seconds or 14 days,
|
||||||
|
including claim lifetime), the server extends the lifetime of claimed
|
||||||
|
messages to be at least as long as the lifetime of the claim itself, plus
|
||||||
|
the specified grace period. If a claimed message would normally live longer
|
||||||
|
than the grace period, its expiration is not adjusted.
|
||||||
|
|
||||||
#### variables in response ###################################################
|
#### variables in response ###################################################
|
||||||
|
|
||||||
versions:
|
versions:
|
||||||
|
4
api-ref/source/samples/claim_messages_request.json
Normal file
4
api-ref/source/samples/claim_messages_request.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"ttl": 300,
|
||||||
|
"grace": 300
|
||||||
|
}
|
10
api-ref/source/samples/claim_messages_response.json
Normal file
10
api-ref/source/samples/claim_messages_response.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"body": {
|
||||||
|
"event": "BackupStarted"
|
||||||
|
},
|
||||||
|
"age": 239,
|
||||||
|
"href": "/v2/queues/demoqueue/messages/51db6f78c508f17ddc924357?claim_id=51db7067821e727dc24df754",
|
||||||
|
"ttl": 300
|
||||||
|
}
|
||||||
|
]
|
15
api-ref/source/samples/claim_query_response.json
Normal file
15
api-ref/source/samples/claim_query_response.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"age": 57,
|
||||||
|
"href": "/v2/queues/demoqueue/claims/51db7067821e727dc24df754",
|
||||||
|
"messages": [
|
||||||
|
{
|
||||||
|
"body": {
|
||||||
|
"event": "BackupStarted"
|
||||||
|
},
|
||||||
|
"age": 296,
|
||||||
|
"href": "/v2/queues/demoqueue/messages/51db6f78c508f17ddc924357?claim_id=51db7067821e727dc24df754",
|
||||||
|
"ttl": 300
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ttl": 300
|
||||||
|
}
|
4
api-ref/source/samples/claim_update_request.json
Normal file
4
api-ref/source/samples/claim_update_request.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"ttl": 300,
|
||||||
|
"grace": 300
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user