任务仓库模式
本附录提供了任务仓库中使用的数据库模式的 ERD(实体关系图)。
表格信息
TASK_EXECUTION
存储任务执行信息。
列名 | 是否必填 | 类型 | 字段长度 | 说明 |
---|---|---|---|---|
TASK_EXECUTION_ID | 是 | BIGINT | X | Spring Cloud Task 框架在应用启动时从 TASK_SEQ 中获取下一个可用的 ID。如果在任务之外创建记录,则必须在创建记录时填充该值。 |
START_TIME | 否 | DATETIME(6) | X | Spring Cloud Task 框架在应用启动时设置该值。 |
END_TIME | 否 | DATETIME(6) | X | Spring Cloud Task 框架在应用退出时设置该值。 |
TASK_NAME | 否 | VARCHAR | 100 | Spring Cloud Task 框架在应用启动时将其设置为 "Application",除非用户使用 spring.application.name 设置名称。 |
EXIT_CODE | 否 | INTEGER | X | 遵循 Spring Boot 的默认值,除非用户覆盖,如此处所述。 |
EXIT_MESSAGE | 否 | VARCHAR | 2500 | 用户定义,如此处所述。 |
ERROR_MESSAGE | 否 | VARCHAR | 2500 | Spring Cloud Task 框架在应用退出时设置该值。 |
LAST_UPDATED | 是 | TIMESTAMP | X | Spring Cloud Task 框架在应用启动时设置该值。如果在任务之外创建记录,则必须在创建记录时填充该值。 |
EXTERNAL_EXECUTION_ID | 否 | VARCHAR | 250 | 如果设置了 spring.cloud.task.external-execution-id 属性,Spring Cloud Task 框架在应用启动时会将其设置为指定的值。更多信息请参见此处。 |
PARENT_TASK_EXECUTION_ID | 否 | BIGINT | X | 如果设置了 spring.cloud.task.parent-execution-id 属性,Spring Cloud Task 框架在应用启动时会将其设置为指定的值。更多信息请参见此处。 |
TASK_EXECUTION_PARAMS
存储用于任务执行的参数
列名 | 必填 | 类型 | 字段长度 |
---|---|---|---|
TASK_EXECUTION_ID | 是 | BIGINT | X |
TASK_PARAM | 否 | VARCHAR | 2500 |
TASK_TASK_BATCH 任务批次
用于将任务执行与批处理执行链接起来。
列名 | 是否必填 | 类型 | 字段长度 |
---|---|---|---|
TASK_EXECUTION_ID | 是 | BIGINT | X |
JOB_EXECUTION_ID | 是 | BIGINT | X |
TASK_LOCK
用于此处讨论的 single-instance-enabled
功能。
列名 | 必需 | 类型 | 字段长度 | 备注 |
---|---|---|---|---|
LOCK_KEY | 是 | CHAR | 36 | 该锁的 UUID |
REGION | 是 | VARCHAR | 100 | 用户可以使用该字段建立一组锁。 |
CLIENT_ID | 是 | CHAR | 36 | 包含要锁定的应用程序名称的任务执行 ID。 |
CREATED_DATE | 是 | DATETIME | X | 创建该条目的日期 |
备注
每种数据库类型设置表的 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;
备注
将 START WITH
设置为比当前执行 ID 更高的值。