fix: ensure jobs do not retry indefinitely by default, fix undefined values in error messages (#9605)
## Fix default retries By default, if no `retries` property has been set, jobs / tasks should not be retried. This was not the case previously, as the `maxRetries` variable was `undefined`, causing jobs to retry endlessly. This PR sets them to `0` by default. Additionally, this fixes some undesirable behavior of the workflow retries property. Workflow retries now act as **maximum**, workflow-level retries. Only tasks that do not have a retry property set will inherit the workflow-level retries. ## Fix error messages Previously, you were able to encounter error messages with undefined values like these:  Reason is that it was always using `job.workflowSlug` for the error messages. However, if you queue a task directly, without a workflow, `job.workflowSlug` is undefined and `job.taskSlug` should be used instead. This PR then gets rid of the second undefined value by ensuring that `maxRetries´ is never undefined
This commit is contained in:
@@ -43,6 +43,8 @@ export interface Config {
|
||||
UpdatePost: MyUpdatePostType;
|
||||
UpdatePostStep2: TaskUpdatePostStep2;
|
||||
CreateSimple: TaskCreateSimple;
|
||||
CreateSimpleRetriesUndefined: TaskCreateSimpleRetriesUndefined;
|
||||
CreateSimpleRetries0: TaskCreateSimpleRetries0;
|
||||
CreateSimpleWithDuplicateMessage: TaskCreateSimpleWithDuplicateMessage;
|
||||
ExternalTask: TaskExternalTask;
|
||||
inline: {
|
||||
@@ -56,6 +58,11 @@ export interface Config {
|
||||
retriesTest: WorkflowRetriesTest;
|
||||
retriesRollbackTest: WorkflowRetriesRollbackTest;
|
||||
retriesWorkflowLevelTest: WorkflowRetriesWorkflowLevelTest;
|
||||
workflowNoRetriesSet: WorkflowWorkflowNoRetriesSet;
|
||||
workflowRetries0: WorkflowWorkflowRetries0;
|
||||
workflowAndTasksRetriesUndefined: WorkflowWorkflowAndTasksRetriesUndefined;
|
||||
workflowRetries2TasksRetriesUndefined: WorkflowWorkflowRetries2TasksRetriesUndefined;
|
||||
workflowRetries2TasksRetries0: WorkflowWorkflowRetries2TasksRetries0;
|
||||
inlineTaskTest: WorkflowInlineTaskTest;
|
||||
externalWorkflow: WorkflowExternalWorkflow;
|
||||
retriesBackoffTest: WorkflowRetriesBackoffTest;
|
||||
@@ -179,6 +186,8 @@ export interface PayloadJob {
|
||||
| 'UpdatePost'
|
||||
| 'UpdatePostStep2'
|
||||
| 'CreateSimple'
|
||||
| 'CreateSimpleRetriesUndefined'
|
||||
| 'CreateSimpleRetries0'
|
||||
| 'CreateSimpleWithDuplicateMessage'
|
||||
| 'ExternalTask';
|
||||
taskID: string;
|
||||
@@ -220,6 +229,11 @@ export interface PayloadJob {
|
||||
| 'retriesTest'
|
||||
| 'retriesRollbackTest'
|
||||
| 'retriesWorkflowLevelTest'
|
||||
| 'workflowNoRetriesSet'
|
||||
| 'workflowRetries0'
|
||||
| 'workflowAndTasksRetriesUndefined'
|
||||
| 'workflowRetries2TasksRetriesUndefined'
|
||||
| 'workflowRetries2TasksRetries0'
|
||||
| 'inlineTaskTest'
|
||||
| 'externalWorkflow'
|
||||
| 'retriesBackoffTest'
|
||||
@@ -231,6 +245,8 @@ export interface PayloadJob {
|
||||
| 'UpdatePost'
|
||||
| 'UpdatePostStep2'
|
||||
| 'CreateSimple'
|
||||
| 'CreateSimpleRetriesUndefined'
|
||||
| 'CreateSimpleRetries0'
|
||||
| 'CreateSimpleWithDuplicateMessage'
|
||||
| 'ExternalTask'
|
||||
)
|
||||
@@ -443,6 +459,32 @@ export interface TaskCreateSimple {
|
||||
simpleID: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "TaskCreateSimpleRetriesUndefined".
|
||||
*/
|
||||
export interface TaskCreateSimpleRetriesUndefined {
|
||||
input: {
|
||||
message: string;
|
||||
shouldFail?: boolean | null;
|
||||
};
|
||||
output: {
|
||||
simpleID: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "TaskCreateSimpleRetries0".
|
||||
*/
|
||||
export interface TaskCreateSimpleRetries0 {
|
||||
input: {
|
||||
message: string;
|
||||
shouldFail?: boolean | null;
|
||||
};
|
||||
output: {
|
||||
simpleID: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "TaskCreateSimpleWithDuplicateMessage".
|
||||
@@ -515,6 +557,51 @@ export interface WorkflowRetriesWorkflowLevelTest {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowWorkflowNoRetriesSet".
|
||||
*/
|
||||
export interface WorkflowWorkflowNoRetriesSet {
|
||||
input: {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowWorkflowRetries0".
|
||||
*/
|
||||
export interface WorkflowWorkflowRetries0 {
|
||||
input: {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowWorkflowAndTasksRetriesUndefined".
|
||||
*/
|
||||
export interface WorkflowWorkflowAndTasksRetriesUndefined {
|
||||
input: {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowWorkflowRetries2TasksRetriesUndefined".
|
||||
*/
|
||||
export interface WorkflowWorkflowRetries2TasksRetriesUndefined {
|
||||
input: {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowWorkflowRetries2TasksRetries0".
|
||||
*/
|
||||
export interface WorkflowWorkflowRetries2TasksRetries0 {
|
||||
input: {
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "WorkflowInlineTaskTest".
|
||||
|
||||
Reference in New Issue
Block a user