mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-16 16:03:14 +00:00
fix: add retry to runScriptByPathAsync and runScriptByHashAsync (#11485)
* feat: add retry to runScriptByPathAsync and runScriptByHashAsync Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: refuse retry with invisible_to_owner and keep the parent priority bump Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: refuse retry when a preprocessor would run and export the options type on jsr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: keep the dispatching job as parent of a retried run Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: cancel pending native retries with their caller and stop the chain on cancel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
1c2667cd55
commit
3f3b1c2c30
Generated
+25
-15
@@ -767,21 +767,23 @@ async cancelJob(jobId: string, reason: string | undefined = undefined): Promise<
|
||||
* Run a script asynchronously by its path
|
||||
* @param path - Script path in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a script asynchronously by its hash
|
||||
* @param hash_ - Script hash in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a flow asynchronously by its path
|
||||
@@ -1600,21 +1602,23 @@ async cancelJob(jobId: string, reason: string | undefined = undefined): Promise<
|
||||
* Run a script asynchronously by its path
|
||||
* @param path - Script path in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a script asynchronously by its hash
|
||||
* @param hash_ - Script hash in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a flow asynchronously by its path
|
||||
@@ -2539,21 +2543,23 @@ async cancelJob(jobId: string, reason: string | undefined = undefined): Promise<
|
||||
* Run a script asynchronously by its path
|
||||
* @param path - Script path in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByPathAsync(path: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a script asynchronously by its hash
|
||||
* @param hash_ - Script hash in Windmill
|
||||
* @param args - Arguments to pass to the script
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds)
|
||||
* @param scheduledInSeconds - Schedule execution for a future time (in seconds), or {@link RunScriptAsyncOptions}
|
||||
* \`{ scheduledInSeconds?, tag?, retry? }\`, e.g. \`{ retry: { constant: { attempts: 3, seconds: 10 } } }\`
|
||||
* @param tag - Override the worker tag the job runs on
|
||||
* @returns Job ID of the created job
|
||||
*/
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null = null, tag: string | null = null): Promise<string>
|
||||
async runScriptByHashAsync(hash_: string, args: Record<string, any> | null = null, scheduledInSeconds: number | null | RunScriptAsyncOptions = null, tag: string | null = null): Promise<string>
|
||||
|
||||
/**
|
||||
* Run a flow asynchronously by its path
|
||||
@@ -4434,10 +4440,14 @@ def post(endpoint, raise_for_status = True, **kwargs) -> httpx.Response
|
||||
def create_token(duration = dt.timedelta(days=1)) -> str
|
||||
|
||||
# Create a script job by path and return its job id.
|
||||
def run_script_by_path_async(path: str, args: dict = None, scheduled_in_secs: int = None, tag: str = None) -> str
|
||||
#
|
||||
# \`\`retry\`\` re-runs the job when it fails, with the policy a schedule takes,
|
||||
# e.g. \`\`{"constant": {"attempts": 3, "seconds": 10}}\`\`. The returned id is
|
||||
# the first attempt's; each retry is a job of its own, recorded as a child of it.
|
||||
def run_script_by_path_async(path: str, args: dict = None, scheduled_in_secs: int = None, tag: str = None, retry: dict = None) -> str
|
||||
|
||||
# Create a script job by hash and return its job id.
|
||||
def run_script_by_hash_async(hash_: str, args: dict = None, scheduled_in_secs: int = None, tag: str = None) -> str
|
||||
# Create a script job by hash and return its job id. See \`\`run_script_by_path_async\`\` for \`\`retry\`\`.
|
||||
def run_script_by_hash_async(hash_: str, args: dict = None, scheduled_in_secs: int = None, tag: str = None, retry: dict = None) -> str
|
||||
|
||||
# Create a flow job and return its job id.
|
||||
def run_flow_async(path: str, args: dict = None, scheduled_in_secs: int = None, do_not_track_in_parent: bool = True, tag: str = None) -> str
|
||||
|
||||
Reference in New Issue
Block a user