Limits
There are some hard and soft limits in v3 that you might hit.
Concurrency limits
These are the default limits on a free account.
Limit | Details |
---|---|
Organization | 10 concurrent runs |
Environment | 5 concurrent runs |
Rate limits
Limit | Details |
---|---|
API | 1,500 requests per minute |
Generally speaking each SDK call is an API call.
The most common cause of hitting the API rate limit is if you’re calling trigger() on a task in a loop, instead of doing this use batchTrigger() which will trigger multiple tasks in a single API call. You can have up to 100 tasks in a single batch trigger call.
Schedules
Limit | Details |
---|---|
Schedules | 5 per project |
When attaching schedules to tasks we strongly recommend you add them in our dashboard if they’re “static”. That way you can control them easily per environment.
If you add them dynamically using code make sure you add a deduplicationKey
so you don’t add the same schedule to a task multiple times. If you don’t your task will get triggered multiple times, it will cost you more, and you will hit the limit.
If you’re creating schedules for your user you will definitely need to request more schedules from us.
Task payloads and outputs
Limit | Details |
---|---|
Single trigger payload | Must not exceed 10MB |
Batch trigger payload | The total of all payloads must not exceed 10MB |
Task outputs | Must not exceed 10MB |
Payloads and outputs that exceed 512KB will be offloaded to object storage and a presigned URL will be provided to download the data when calling runs.retrieve
. You don’t need to do anything to handle this in your tasks however, as we will transparently upload/download these during operation.
Machines
The default machine is small-1x
which has 0.5 vCPU and 0.5 GB of RAM. You can optionally configure a higher spec machine which will increase the cost of running the task but can also improve the performance of the task if it is CPU or memory bound.
See the machine configurations for more details.