docs/v3/api-ref/python/prefect-server-api-concurrency_limits.mdx
prefect.server.api.concurrency_limitsRoutes 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.
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>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>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>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>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>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>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>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>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>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.
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>