diff --git a/mis-spec/references/worksheet.md b/mis-spec/references/worksheet.md index c5a92db..ccf7933 100644 --- a/mis-spec/references/worksheet.md +++ b/mis-spec/references/worksheet.md @@ -2,33 +2,11 @@ 凡是**异步且对延迟时间不敏感的任务**一律使用工单。 +## 前置条件 + +请先在编写代码的模块,检查是否存在`WorkSheetHandler.java`或者`SimpleWorkSheet.java`类,若存在则直接使用工单,不存在则不使用工单。 + ## 使用方法 -请先在编写代码的模块,检查是否存在`WorkSheetHandler.java`或者`SimpleWorkSheet.java`类,若存在则使用工单,不存在则不使用。通过`WorkSheetHandler.java`中的`putObjectParam`或者`putStringParam`方法创建一条异步执行的任务。创建一个SpringBean实现`SimpleWorkSheet.java`接口。实现`getWorkCode()`方法时,按照业务属性去定义一个字符串,例如:"ORDER_CREATE"。在`execute`方法处理业务逻辑。 - -## 案例 - -项目中"mis-modules/mis-paw/src/main/java/com/lcfc/mispaw/mq/base/IMessageQueueConsumer.java"在"onMessage"方法捕获异常,调用"mis-modules/mis-paw/src/main/java/com/lcfc/mispaw/worksheet/WorkSheetHandler.java"的"putObjectParam"方法把异步任务保存到数据库。 - -## 工单的表结构 - -```sql -CREATE TABLE `work_sheet` ( - `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID', - `system_code` VARCHAR(64) NOT NULL COMMENT '系统编码', - `work_code` VARCHAR(512) NOT NULL COMMENT '工单编码', - `current_try_times` INT NOT NULL COMMENT '当前是第几次重试', - `max_try_times` INT NOT NULL COMMENT '最多重试多少次', - `task_id` VARCHAR(512) NOT NULL COMMENT '追踪标识(traceId、业务标识、时间戳等)', - `state` VARCHAR(32) NOT NULL COMMENT '状态:wait-待执行,error-失败,success-成功', - `json_param` JSON NULL COMMENT '请求参数(JSON格式)', - `str_param` VARCHAR(512) NULL COMMENT '请求参数(简单字符串)', - `response_param` LONGTEXT NULL COMMENT '响应参数', - `error` LONGTEXT NULL COMMENT '错误信息', - `create_time` DATETIME NOT NULL COMMENT '创建时间', - `start_time` DATETIME NULL COMMENT '执行开始时间', - `finish_time` DATETIME NULL COMMENT '执行结束时间', - PRIMARY KEY (`id`), - KEY idx_task_id(`task_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单表'; -``` \ No newline at end of file +1. 调用`WorkSheetHandler.java`中的`putObjectParam`或者`putStringParam`方法创建一条异步执行的任务。 +2. 创建一个**SpringBean**实现`SimpleWorkSheet.java`接口,实现`getWorkCode`方法时,按照业务属性去定义一个字符串,例如:"ORDER_CREATE",在`execute`方法处理业务逻辑。 \ No newline at end of file