Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pixlcore/xyops/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Limits are self-imposed restrictions you can place on your events to govern resource usage as jobs run, as well as specify options such as max number of retries, or max allowed jobs to queue up. Limits can be defined at several different levels, including directly on events, attached as workflow nodes, inherited from categories, or inherited from your global configuration file (“universal” limits).Limit Precedence
When multiple limits of the same type are present for a job, xyOps applies them based on source priority:Single vs Multiple Limits
Single Limit Types (only first enabled limit applies):- Max Concurrent Jobs
- Max Retry Limit
- Max Queue Limit
- Max File Limit
- Max Run Time
- Max Output Size
- Max CPU Limit
- Max Memory Limit
For example, you can emit a warning at 500MB memory usage and abort at 1GB by adding two separate memory limits.
Where Limits Are Defined
- Event/Workflow Editor: Add limits directly to a specific job or workflow
- Category Editor: Add default limits that all events in the category inherit
- Configuration: Add universal defaults in
job_universal_limits
Limit Types
Max Run Time
Enforce a soft or hard cap on total job elapsed time. When exceeded, optional actions can be taken and the job can be aborted. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to time |
duration | Number | Maximum runtime in seconds |
tags | Array(String) | Tag IDs to apply when exceeded |
users | Array(String) | Usernames to email |
email | String | Additional comma-separated addresses |
web_hook | String | WebHook ID to fire |
text | String | Custom text for webhook |
snapshot | Boolean | Take server snapshot |
abort | Boolean | Abort the job |
Max Concurrent Jobs
Limit how many jobs of the same event/workflow may run at once. If the cap is reached, xyOps can queue the job if aqueue limit allows it; otherwise the job is aborted.
Parameters:
| Name | Type | Description |
|---|---|---|
type | String | Set to job |
amount | Number | Maximum concurrent active jobs |
For workflows, scope matches the workflow’s event. For ad-hoc workflow node jobs, the queue scope includes the node ID.
Max Output Size
Cap the job’s output/log size in bytes. When exceeded, optional actions can be taken and the job can be aborted. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to log |
amount | Number | Maximum bytes of output/log |
tags | Array(String) | Tags to apply |
users | Array(String) | Users to email |
email | String | Additional addresses |
web_hook | String | WebHook ID |
text | String | Webhook text |
snapshot | Boolean | Take snapshot |
abort | Boolean | Abort job |
Max Memory Limit
Cap total memory usage for the job (including child processes). The limit triggers only if usage stays over the threshold continuously for the sustain duration. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to mem |
amount | Number | Maximum memory in bytes |
duration | Number | Sustain time in seconds |
tags | Array(String) | Tags to apply |
users | Array(String) | Users to email |
email | String | Additional addresses |
web_hook | String | WebHook ID |
text | String | Webhook text |
snapshot | Boolean | Take snapshot |
abort | Boolean | Abort job |
Sustain Period Details
Sustain Period Details
Memory limits use a “sustain” mechanism:The limit only triggers if memory stays above threshold for the entire sustain duration.
Max CPU Limit
Cap CPU usage for the job (including child processes). The limit triggers only if CPU stays over the threshold continuously for the sustain duration. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to cpu |
amount | Number | CPU percentage (100 = one core) |
duration | Number | Sustain time in seconds |
tags | Array(String) | Tags to apply |
users | Array(String) | Users to email |
email | String | Additional addresses |
web_hook | String | WebHook ID |
text | String | Webhook text |
snapshot | Boolean | Take snapshot |
abort | Boolean | Abort job |
Max Retry Limit
Control how many retries are attempted for failed jobs, and optionally how long to wait between retries. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to retry |
amount | Number | Maximum retries (0 disables) |
duration | Number | Delay in seconds between retries |
On each retry, xyOps clones the job context, increments
retry_count, and optionally delays before relaunch.Max Queue Limit
Cap how many jobs are allowed to wait in the queue when concurrency or server availability prevents immediate start. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to queue |
amount | Number | Maximum queued jobs (0 disables) |
Max File Limit
Soft limit that prunes incoming files (from job input) before launch. Can cap the number of files, total combined size, and restrict file types by extension. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to file |
amount | Number | Maximum files (0 means no files) |
size | Number | Maximum total bytes |
accept | String | Comma-separated extensions (e.g., .json,.csv) |
This limit never aborts the job; it prunes files and logs what was removed.
Max Daily Limit
Quietly prevent additional job launches if a specific daily condition count has been reached for the event. Parameters:| Name | Type | Description |
|---|---|---|
type | String | Set to day |
condition | String | Job condition to track (complete, error, etc.) |
amount | Number | Maximum conditions per day |
Use Cases
Use Cases
- Cap total runs: Set condition to
completeto limit total jobs per day - E-brake on errors: Set condition to
criticalto stop after N critical errors - Throttle warnings: Set condition to
warningto prevent warning spam
Universal Limits
Set universal defaults in server config:default (regular events) and workflow limits.
Limit Enforcement
Start-Time Enforcement
Before a job starts, the system evaluates:Runtime Enforcement
time, log, mem, and cpu limits are checked while jobs run:
Triggered Actions
When a limit is exceeded, configured actions execute:Notes and Behavior
- Start-time enforcement:
job,queue, andfilelimits are evaluated before launch - Runtime enforcement:
time,log,mem,cpuare checked while the job runs - Sustain periods:
memandcpurequire sustained overages for theirdurationbefore triggering - Multiple limits: If multiple sources define the same type, event/workflow definition takes precedence for start-time checks
- Queue scope: Queues are per event. For ad-hoc workflow node runs, the queue scope includes the node identifier
- Queues usage: Used both when
jobconcurrency is saturated and when no matching servers are available
Related Documentation
Events
Learn about event configuration
Actions
Configure limit-triggered actions
Jobs
Understand job lifecycle
Workflows
Attach limits to workflow nodes