add
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# 使用场景
|
||||
|
||||
异步任务捕捉到异常需要发起重试。
|
||||
|
||||
## 源码
|
||||
|
||||
目录:"mis-modules/mis-paw/src/main/java/com/lcfc/mispaw/worksheet",所有"SimpleWorkSheet.java"的子类都是一个工单处理器,"WorkSheetTaskExecutor.java"将定时轮询查数据库并异步执行。
|
||||
|
||||
## 编写代码的模块没有工单怎么办?
|
||||
|
||||
把"worksheet"目录拷贝一份到编写代码的模块,放在与springboot启动类同级目录,代码生成完毕以后,把工单的表结构原文输出给用户,让其手动执行。
|
||||
|
||||
## 案例
|
||||
|
||||
项目中"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='工单表';
|
||||
```
|
||||
Reference in New Issue
Block a user