跳到主要内容

任务仓库模式

DeepSeek V3 中英对照 Task Repository Schema

本附录提供了任务仓库中使用的数据库模式的 ERD(实体关系图)。

任务架构图

表格信息

TASK_EXECUTION

存储任务执行信息。

列名是否必填类型字段长度说明
TASK_EXECUTION_IDBIGINTXSpring Cloud Task 框架在应用启动时从 TASK_SEQ 中获取下一个可用的 ID。如果在任务之外创建记录,则必须在创建记录时填充该值。
START_TIMEDATETIME(6)XSpring Cloud Task 框架在应用启动时设置该值。
END_TIMEDATETIME(6)XSpring Cloud Task 框架在应用退出时设置该值。
TASK_NAMEVARCHAR100Spring Cloud Task 框架在应用启动时将其设置为 "Application",除非用户使用 spring.application.name 设置名称。
EXIT_CODEINTEGERX遵循 Spring Boot 的默认值,除非用户覆盖,如此处所述。
EXIT_MESSAGEVARCHAR2500用户定义,如此处所述。
ERROR_MESSAGEVARCHAR2500Spring Cloud Task 框架在应用退出时设置该值。
LAST_UPDATEDTIMESTAMPXSpring Cloud Task 框架在应用启动时设置该值。如果在任务之外创建记录,则必须在创建记录时填充该值。
EXTERNAL_EXECUTION_IDVARCHAR250如果设置了 spring.cloud.task.external-execution-id 属性,Spring Cloud Task 框架在应用启动时会将其设置为指定的值。更多信息请参见此处
PARENT_TASK_EXECUTION_IDBIGINTX如果设置了 spring.cloud.task.parent-execution-id 属性,Spring Cloud Task 框架在应用启动时会将其设置为指定的值。更多信息请参见此处

TASK_EXECUTION_PARAMS

存储用于任务执行的参数

列名必填类型字段长度
TASK_EXECUTION_IDBIGINTX
TASK_PARAMVARCHAR2500

TASK_TASK_BATCH 任务批次

用于将任务执行与批处理执行链接起来。

列名是否必填类型字段长度
TASK_EXECUTION_IDBIGINTX
JOB_EXECUTION_IDBIGINTX

TASK_LOCK

用于此处讨论的 single-instance-enabled 功能。

列名必需类型字段长度备注
LOCK_KEYCHAR36该锁的 UUID
REGIONVARCHAR100用户可以使用该字段建立一组锁。
CLIENT_IDCHAR36包含要锁定的应用程序名称的任务执行 ID。
CREATED_DATEDATETIMEX创建该条目的日期
备注

每种数据库类型设置表的 DDL 可以在这里找到。

SQL Server

默认情况下,Spring Cloud Task 使用一个序列表来确定 TASK_EXECUTION 表中的 TASK_EXECUTION_ID。然而,当在使用 SQL Server 时同时启动多个任务时,这可能会导致 TASK_SEQ 表上发生死锁。解决方法是删除 TASK_EXECUTION_SEQ 表,并使用相同的名称创建一个序列。例如:

DROP TABLE TASK_SEQ;

CREATE SEQUENCE [DBO].[TASK_SEQ] AS BIGINT
START WITH 1
INCREMENT BY 1;
none
备注

START WITH 设置为比当前执行 ID 更高的值。