Back to Prefect

concurrency_limits

docs/v3/api-ref/python/prefect-server-api-concurrency_limits.mdx

3.6.30.dev35.8 KB
Original Source

prefect.server.api.concurrency_limits

Routes for interacting with concurrency limit objects.

This module provides a V1 API adapter that routes requests to the V2 concurrency system. After the migration, V1 limits are converted to V2, but the V1 API continues to work for backward compatibility.

Functions

create_concurrency_limit <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L43" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
create_concurrency_limit(concurrency_limit: schemas.actions.ConcurrencyLimitCreate, response: Response, db: PrefectDBInterface = Depends(provide_database_interface)) -> schemas.core.ConcurrencyLimit

Create a task run concurrency limit.

For more information, see https://docs.prefect.io/v3/concepts/tag-based-concurrency-limits.

read_concurrency_limit <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L102" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
read_concurrency_limit(concurrency_limit_id: UUID = Path(..., description='The concurrency limit id', alias='id'), db: PrefectDBInterface = Depends(provide_database_interface)) -> schemas.core.ConcurrencyLimit

Get a concurrency limit by id.

The active slots field contains a list of TaskRun IDs currently using a concurrency slot for the specified tag.

read_concurrency_limit_by_tag <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L148" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
read_concurrency_limit_by_tag(tag: str = Path(..., description='The tag name', alias='tag'), db: PrefectDBInterface = Depends(provide_database_interface)) -> schemas.core.ConcurrencyLimit

Get a concurrency limit by tag.

The active slots field contains a list of TaskRun IDs currently using a concurrency slot for the specified tag.

read_concurrency_limits <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L191" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
read_concurrency_limits(limit: int = dependencies.LimitBody(), offset: int = Body(0, ge=0), db: PrefectDBInterface = Depends(provide_database_interface)) -> Sequence[schemas.core.ConcurrencyLimit]

Query for concurrency limits.

For each concurrency limit the active slots field contains a list of TaskRun IDs currently using a concurrency slot for the specified tag.

reset_concurrency_limit_by_tag <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L241" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
reset_concurrency_limit_by_tag(tag: str = Path(..., description='The tag name'), slot_override: Optional[List[UUID]] = Body(None, embed=True, description='Manual override for active concurrency limit slots.'), db: PrefectDBInterface = Depends(provide_database_interface)) -> None

delete_concurrency_limit <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L316" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
delete_concurrency_limit(concurrency_limit_id: UUID = Path(..., description='The concurrency limit id', alias='id'), db: PrefectDBInterface = Depends(provide_database_interface)) -> None

delete_concurrency_limit_by_tag <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
delete_concurrency_limit_by_tag(tag: str = Path(..., description='The tag name'), db: PrefectDBInterface = Depends(provide_database_interface)) -> None

increment_concurrency_limits_v1 <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L440" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
increment_concurrency_limits_v1(names: List[str] = Body(..., description='The tags to acquire a slot for'), task_run_id: UUID = Body(..., description='The ID of the task run acquiring the slot'), db: PrefectDBInterface = Depends(provide_database_interface)) -> List[MinimalConcurrencyLimitResponse]

Increment concurrency limits for the given tags.

During migration, this handles both V1 and V2 limits to support mixed states. Post-migration, it only uses V2 with lease-based concurrency.

decrement_concurrency_limits_v1 <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L575" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
decrement_concurrency_limits_v1(names: List[str] = Body(..., description='The tags to release a slot for'), task_run_id: UUID = Body(..., description='The ID of the task run releasing the slot'), db: PrefectDBInterface = Depends(provide_database_interface)) -> List[MinimalConcurrencyLimitResponse]

Decrement concurrency limits for the given tags.

Finds and revokes the lease for V2 limits or decrements V1 active slots. Returns the list of limits that were decremented.

Classes

Abort <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L428" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

Delay <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/api/concurrency_limits.py#L433" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>