Skip to content

Commit 58a2ff8

Browse files
claude[bot]windmill-internal-app[bot]pyranota
authored
docs: add documentation for normal job debouncing feature (#1129)
* docs: add documentation for normal job debouncing feature - Created comprehensive documentation for job debouncing in core_concepts - Added flow-specific debouncing documentation - Updated script editor settings documentation to include debouncing - Added changelog entry for the new feature - Updated sidebars.js and core_concepts index - Mentioned that debouncing is enabled by default for dependency jobs Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> * docs: rewrite job debouncing documentation to match concurrency limits pattern - Convert main documentation from .mdx to .md format - Match concise structure and wording of concurrency limits documentation - Update flows documentation to use consistent canonical URL pattern - Simplify section headings and descriptions - Add placeholder comments for screenshots - Align with enterprise features documentation style Co-authored-by: Pyra <pyranota@users.noreply.github.com> * fix: address documentation feedback for job debouncing - Update changelog title from 'Normal Job Debouncing' to 'Job Debouncing' - Add job debouncing DocCard link in flow editor next to concurrency limits Co-authored-by: Pyra <pyranota@users.noreply.github.com> * nits Signed-off-by: pyranota <pyra@duck.com> * fix: address documentation feedback for job debouncing - Created job debouncing page for script editor section (/docs/script_editor/job_debouncing.mdx) - Added script editor job debouncing page to sidebars.js - Added flow job debouncing page link to sidebars.js (was created but not linked) Co-authored-by: Pyra <pyranota@users.noreply.github.com> * make it make sense Signed-off-by: pyranota <pyra@duck.com> * Update index.md --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com> Co-authored-by: Pyra <pyranota@users.noreply.github.com> Co-authored-by: pyranota <pyra@duck.com> Co-authored-by: Pyra <92104930+pyranota@users.noreply.github.com>
1 parent 31b818e commit 58a2ff8

File tree

8 files changed

+123
-0
lines changed

8 files changed

+123
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
slug: job-debouncing
3+
version: v1.566.1
4+
title: Job Debouncing
5+
tags: ['Jobs', 'Performance', 'Debouncing']
6+
description: Prevent redundant job executions by canceling duplicate jobs within a specified time window. Debouncing is enabled by default for dependency jobs.
7+
features:
8+
[
9+
'Cancel pending jobs with identical characteristics when new ones arrive',
10+
'Configure custom debounce time windows',
11+
'Use custom debounce keys for fine-grained control',
12+
'Default debouncing enabled for dependency jobs',
13+
]
14+
docs: /docs/core_concepts/job_debouncing
15+
---
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Job debouncing
2+
3+
Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics when new ones are submitted within a specified time window. This feature helps optimize resource usage and prevents unnecessary duplicate computations.
4+
5+
Job debouncing is a [Cloud plans and Pro Enterprise Self-Hosted](/pricing) only.
6+
7+
Debouncing can be set from the Settings menu. When jobs with matching characteristics are submitted within the debounce window, pending jobs are automatically canceled in favor of the newest one.
8+
9+
The Job debouncing operates globally and across flow runs. It involves two key parameters:
10+
11+
## Debounce delay in seconds
12+
13+
Set in seconds, the time window defines the period during which duplicate jobs are canceled. When a new job arrives within this window with matching characteristics, any pending jobs are canceled.
14+
15+
## Custom debounce key
16+
17+
This parameter is optional. Debounce keys are global, you can have them be workspace specific using the variable `$workspace`. You can also use an argument's value using `$args[name_of_arg]`.
18+
19+
## Dependency jobs
20+
21+
For dependency jobs, debouncing is enabled by default. This prevents redundant dependency computations when multiple jobs require the same dependencies.
22+
23+
## Job debouncing in Script & Flows
24+
25+
### Job debouncing of a script
26+
27+
[Job debouncing of a script](../../script_editor/settings.mdx#debouncing) can be set from the [Settings](../../script_editor/settings.mdx) menu. Pick "Runtime" and then "Debouncing" and define a time window and optionally a custom debounce key.
28+
29+
### Job debouncing of a flow
30+
31+
From the Flow Settings Advanced menu, pick "Debouncing" and define a time window and optionally a custom debounce key.

docs/core_concepts/index.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,11 @@ All details & features on [Pricing page](/pricing).
610610
description="The Concurrency limits feature allows you to define concurrency limits for scripts, flows and inline scripts within flows."
611611
href="/docs/core_concepts/concurrency_limits"
612612
/>
613+
<DocCard
614+
title="Job debouncing"
615+
description="Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics."
616+
href="/docs/core_concepts/job_debouncing"
617+
/>
613618
<DocCard
614619
title="Instance object storage distributed cache for Python, Rust, Go"
615620
description="Leverage a global S3 cache to speed up Python dependency handling by storing and reusing pre-installed package."

docs/flows/1_flow_editor.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,12 @@ The Flow editor has the following features which are the subject of specific pag
147147
description="The Concurrency limit feature allows you to define concurrency limits for scripts and inline scripts within flows."
148148
href="/docs/flows/concurrency_limit"
149149
/>
150+
<DocCard
151+
color="teal"
152+
title="Job debouncing"
153+
description="Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics."
154+
href="/docs/flows/job_debouncing"
155+
/>
150156
<DocCard
151157
color="teal"
152158
title="Custom timeout for step"

docs/flows/23_job_debouncing.mdx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
canonical_url: /docs/core_concepts/job_debouncing
3+
---
4+
5+
import DocCard from '@site/src/components/DocCard';
6+
7+
# Job debouncing
8+
9+
Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics when new ones are submitted within a specified time window. This feature helps optimize resource usage and prevents unnecessary duplicate computations.
10+
11+
Job debouncing is a [Cloud plans and Pro Enterprise Self-Hosted](/pricing) only.
12+
13+
Debouncing can be set from the Settings menu. When jobs with matching characteristics are submitted within the debounce window, pending jobs are automatically canceled in favor of the newest one.
14+
15+
The Job debouncing operates globally and across flow runs. It involves two key parameters:
16+
- [Debounce delay in seconds](../core_concepts/22_job_debouncing/index.md#debounce-delay-in-seconds)
17+
- [Custom debounce key](../core_concepts/22_job_debouncing/index.md#custom-debounce-key)
18+
19+
<div className="grid grid-cols-2 gap-6 mb-4">
20+
<DocCard
21+
title="Job debouncing"
22+
description="Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics."
23+
href="/docs/core_concepts/job_debouncing"
24+
/>
25+
</div>
26+
27+
## Job debouncing of flow
28+
29+
From the Flow Settings menu, pick "Debouncing" and define a time window and optionally a custom debounce key.
30+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
canonical_url: /docs/core_concepts/job_debouncing
3+
---
4+
5+
# Job debouncing
6+
7+
Job debouncing limits job duplicates. When a script is queued with the same debouncing key within the specified time window, only the most recent one will run. This helps prevent duplicate executions and reduces unnecessary API calls.
8+
9+
Job debouncing is a [Cloud plans and Pro Enterprise Self-Hosted](/pricing) only feature.
10+
11+
Job debouncing can be set from the Settings menu. When jobs share the same debouncing key within the time window, earlier jobs are automatically cancelled as "debounced" and only the latest job runs.
12+
13+
The Job debouncing feature operates globally and involves two key parameters:
14+
15+
## Debounce delay in seconds
16+
17+
Set in seconds, the time window defines the period within which jobs with the same key are debounced.
18+
19+
## Custom debouncing key
20+
21+
This parameter is optional. Debouncing keys are global, you can have them be workspace specific using the variable `$workspace`. You can also use an argument's value using `$args[name_of_arg]`.

docs/script_editor/settings.mdx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,18 @@ The Concurrency limit feature allows you to define concurrency limits for script
9191
/>
9292
</div>
9393

94+
### Debouncing
95+
96+
Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics when new ones are submitted within a specified time window.
97+
98+
<div className="grid grid-cols-2 gap-6 mb-4">
99+
<DocCard
100+
title="Job debouncing"
101+
description="Job debouncing prevents redundant job executions by canceling pending jobs with identical characteristics."
102+
href="/docs/core_concepts/job_debouncing"
103+
/>
104+
</div>
105+
94106
### Worker group tag
95107

96108
Scripts can be assigned custom [worker groups](../core_concepts/9_worker_groups/index.mdx) for efficient execution on different machines with varying specifications.

sidebars.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,7 @@ const sidebars = {
710710
'script_editor/script_kinds',
711711
'script_editor/customize_ui',
712712
'script_editor/concurrency_limit',
713+
'script_editor/job_debouncing',
713714
'script_editor/perpetual_scripts',
714715
'script_editor/custom_environment_variables',
715716
'script_editor/multiplayer',
@@ -737,6 +738,7 @@ const sidebars = {
737738
'flows/flow_trigger',
738739
'flows/retries',
739740
'flows/concurrency_limit',
741+
'flows/job_debouncing',
740742
'flows/custom_timeout',
741743
'flows/priority',
742744
'flows/lifetime',
@@ -1028,6 +1030,7 @@ const sidebars = {
10281030
'misc/worker_group_management_ui/index',
10291031
'core_concepts/autoscaling/index',
10301032
'core_concepts/concurrency_limits/index',
1033+
'core_concepts/job_debouncing/index',
10311034
'misc/s3_cache/index',
10321035
'core_concepts/oidc/index',
10331036
'misc/saml_and_scim/index',

0 commit comments

Comments
 (0)