Task Repository Schema

本附录提供了在任务存储库中所用数据库模式的 ERD。 image::task_schema.png[]

Table Information

TASK_EXECUTION

存储任务执行信息。

Column Name Required Type Field Length Notes

TASK_EXECUTION_ID

TRUE

BIGINT

X

Spring Cloud Task Framework 在应用程序启动时,将下一可用 ID 设置为从 TASK_SEQ 获取到的值。或者如果记录是在任务外部创建的,则必须在记录创建时填充值。

START_TIME

FALSE

DATETIME(6)

X

Spring Cloud Task Framework 在应用程序启动时设置值。

END_TIME

FALSE

DATETIME(6)

X

Spring Cloud Task Framework 在应用程序退出时设置值。

TASK_NAME

FALSE

VARCHAR

100

Spring Cloud Task Framework 在应用程序启动时将此设置成“应用程序”,除非用户使用 spring.application.name 设置名称。

EXIT_CODE

FALSE

INTEGER

X

采用 Spring Boot 默认值,除非用户按 here 中所述进行覆盖。

EXIT_MESSAGE

FALSE

VARCHAR

2500

here 中所述进行用户定义。

ERROR_MESSAGE

FALSE

VARCHAR

2500

Spring Cloud Task Framework 在应用程序退出时设置值。

LAST_UPDATED

TRUE

TIMESTAMP

X

Spring Cloud Task Framework 在应用程序启动时设置值。或者如果记录是在任务外部创建的,则必须在记录创建时填充值。

EXTERNAL_EXECUTION_ID

FALSE

VARCHAR

250

如果设置了 spring.cloud.task.external-execution-id 属性,则 Spring Cloud Task 框架在启动应用时会将该属性设置为指定的值。更多信息请访问 here

PARENT_TASK_EXECUTION_ID

FALSE

BIGINT

X

如果设置了 spring.cloud.task.parent-execution-id 属性,则 Spring Cloud Task 框架在启动应用时会将该属性设置为指定的值。更多信息请访问 here

TASK_EXECUTION_PARAMS

存储用于任务执行的参数。

Column Name Required Type Field Length

TASK_EXECUTION_ID

TRUE

BIGINT

X

TASK_PARAM

FALSE

VARCHAR

2500

TASK_TASK_BATCH

用于将任务执行链接到批次执行。

Column Name Required Type Field Length

TASK_EXECUTION_ID

TRUE

BIGINT

X

JOB_EXECUTION_ID

TRUE

BIGINT

X

TASK_LOCK

用于在 here 中讨论的 single-instance-enabled 功能。

Column Name Required Type Field Length Notes

LOCK_KEY

TRUE

CHAR

36

此锁的 UUID

REGION

TRUE

VARCHAR

100

用户可以使用此字段建立一组锁。

CLIENT_ID

TRUE

CHAR

36

包含要锁定的应用程序名称的任务执行 ID。

CREATED_DATE

TRUE

DATETIME

X

创建该项目的日期

可以在 here 中找到设置每种数据库类型的表的 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 的值。