Task Repository Schema

This appendix provides an ERD for the database schema used in the task repository.spring-doc.cn

task schema

Table Information

TASK_EXECUTION

Stores the task execution information.spring-doc.cn

Column Name Required Type Field Length Notes

TASK_EXECUTION_IDspring-doc.cn

TRUEspring-doc.cn

BIGINTspring-doc.cn

Xspring-doc.cn

Spring Cloud Task Framework at app startup establishes the next available id as obtained from the TASK_SEQ. Or if the record is created outside of task then the value must be populated at record creation time.spring-doc.cn

START_TIMEspring-doc.cn

FALSEspring-doc.cn

DATETIME(6)spring-doc.cn

Xspring-doc.cn

Spring Cloud Task Framework at app startup establishes the value.spring-doc.cn

END_TIMEspring-doc.cn

FALSEspring-doc.cn

DATETIME(6)spring-doc.cn

Xspring-doc.cn

Spring Cloud Task Framework at app exit establishes the value.spring-doc.cn

TASK_NAMEspring-doc.cn

FALSEspring-doc.cn

VARCHARspring-doc.cn

100spring-doc.cn

Spring Cloud Task Framework at app startup will set this to "Application" unless user establish the name using the spring.application.name.spring-doc.cn

EXIT_CODEspring-doc.cn

FALSEspring-doc.cn

INTEGERspring-doc.cn

Xspring-doc.cn

Follows Spring Boot defaults unless overridden by the user as discussed here.spring-doc.cn

EXIT_MESSAGEspring-doc.cn

FALSEspring-doc.cn

VARCHARspring-doc.cn

2500spring-doc.cn

User Defined as discussed here.spring-doc.cn

ERROR_MESSAGEspring-doc.cn

FALSEspring-doc.cn

VARCHARspring-doc.cn

2500spring-doc.cn

Spring Cloud Task Framework at app exit establishes the value.spring-doc.cn

LAST_UPDATEDspring-doc.cn

TRUEspring-doc.cn

TIMESTAMPspring-doc.cn

Xspring-doc.cn

Spring Cloud Task Framework at app startup establishes the value. Or if the record is created outside of task then the value must be populated at record creation time.spring-doc.cn

EXTERNAL_EXECUTION_IDspring-doc.cn

FALSEspring-doc.cn

VARCHARspring-doc.cn

250spring-doc.cn

If the spring.cloud.task.external-execution-id property is set then Spring Cloud Task Framework at app startup will set this to the value specified. More information can be found herespring-doc.cn

PARENT_TASK_EXECUTION_IDspring-doc.cn

FALSEspring-doc.cn

BIGINTspring-doc.cn

Xspring-doc.cn

If the spring.cloud.task.parent-execution-id property is set then Spring Cloud Task Framework at app startup will set this to the value specified. More information can be found herespring-doc.cn

TASK_EXECUTION_PARAMS

Stores the parameters used for a task executionspring-doc.cn

Column Name Required Type Field Length

TASK_EXECUTION_IDspring-doc.cn

TRUEspring-doc.cn

BIGINTspring-doc.cn

Xspring-doc.cn

TASK_PARAMspring-doc.cn

FALSEspring-doc.cn

VARCHARspring-doc.cn

2500spring-doc.cn

TASK_TASK_BATCH

Used to link the task execution to the batch execution.spring-doc.cn

Column Name Required Type Field Length

TASK_EXECUTION_IDspring-doc.cn

TRUEspring-doc.cn

BIGINTspring-doc.cn

Xspring-doc.cn

JOB_EXECUTION_IDspring-doc.cn

TRUEspring-doc.cn

BIGINTspring-doc.cn

Xspring-doc.cn

TASK_LOCK

Used for the single-instance-enabled feature discussed here.spring-doc.cn

Column Name Required Type Field Length Notes

LOCK_KEYspring-doc.cn

TRUEspring-doc.cn

CHARspring-doc.cn

36spring-doc.cn

UUID for the this lockspring-doc.cn

REGIONspring-doc.cn

TRUEspring-doc.cn

VARCHARspring-doc.cn

100spring-doc.cn

User can establish a group of locks using this field.spring-doc.cn

CLIENT_IDspring-doc.cn

TRUEspring-doc.cn

CHARspring-doc.cn

36spring-doc.cn

The task execution id that contains the name of the app to lock.spring-doc.cn

CREATED_DATEspring-doc.cn

TRUEspring-doc.cn

DATETIMEspring-doc.cn

Xspring-doc.cn

The date that the entry was createdspring-doc.cn

The DDL for setting up tables for each database type can be found here.

SQL Server

By default Spring Cloud Task uses a sequence table for determining the TASK_EXECUTION_ID for the TASK_EXECUTION table. However, when launching multiple tasks simultaneously while using SQL Server, this can cause a deadlock to occur on the TASK_SEQ table. The resolution is to drop the TASK_EXECUTION_SEQ table and create a sequence using the same name. For example:spring-doc.cn

DROP TABLE TASK_SEQ;

CREATE SEQUENCE [DBO].[TASK_SEQ] AS BIGINT
 START WITH 1
 INCREMENT BY 1;
Set the START WITH to a higher value than your current execution id.