hagai
07/07/2024, 2:41 PMMarvin
07/07/2024, 2:42 PMmax_active_runs
attribute within the deployment configuration. Here's a step-by-step approach:
1. Modify the Deployment Configuration:
- You need to set the max_active_runs
parameter within your deployment YAML file to specify the maximum number of concurrent runs.
2. Using Global Concurrency Limits:
- Alternative approaches include using global concurrency limits or setting a concurrency limit on a dedicated work queue.
Here is an example deployment YAML configuration that sets `max_active_runs`:
yaml
version: 1
flows:
- name: my-flow
parameters: {}
schedule:
interval: 10m
max_active_runs: 5
Another example using global concurrency limits directly within your flow might look like:
python
from prefect import flow, concurrency
GLOBAL_CONCURRENCY_LIMIT_NAME = "only-one-flow"
@flow
async def my_flow():
async with concurrency(GLOBAL_CONCURRENCY_LIMIT_NAME, occupy=1):
# Your flow logic here
pass
References:
- Issue and discussion on concurrency for deployments: Adding Concurrency Limit for Deployments
- More context on handling concurrency with workers: Make Workers aware of Concurrency Limits
This should cover the methods to define and handle deployment concurrency in Prefect. If you encounter any challenges or need additional assistance, feel free to reach out.