合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
微服务之间相互调用,难免会出现形形色色的异常,出现异常时有些情况可能需要先落重试任务表,然后通过任务调度等进行定时重试;通过自定义重试注解@Retryable,减少对核心业务代码入侵,增强代码可读性、可维护性。下面通过实战,开发自定义重试注解@Retryable。诸位可根据业务需要,稍作改造直接使用。
重试任务表定义(retry_task):
CREATE TABLE `retry_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键值',
`business_type_code` varchar(32) COLLATE NOT NULL DEFAULT '' COMMENT '业务类型编码',
`business_type_desc` varchar(100) COLLATE NOT NULL DEFAULT '' COMMENT '业务类型描述',
`retry_service_name` varchar(100) COLLATE NOT NULL DEFAULT '' COMMENT '重试的service名称',
`business_param` text COLLATE NOT NULL DEFAULT '' COMMENT '业务参数',
`wait_retry_times` int(11) NOT NULL DEFAULT 3 COMMENT '待重试次数',
`already_retry_times` int(11) NOT NULL DEFAULT 0 COMMENT '已重试次数',
`retry_result_code` varchar(36) COLLATE NOT NULL DEFAULT '' COMMENT '重试结果码',
`retry_result_msg` varchar(255) COLLATE NOT NULL DEFAULT '' COMMENT '重试结果描述',
`create_user` varchar(36) COLLATE NOT NULL DEFAULT '' COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` varchar(36) COLLATE NOT NULL DEFAULT '' COMMENT '更新人',
`update_time` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_create_time` (`create_time`),
KEY `idx_business_type_code` (`business_type_code`)
) COMMENT='重试任务表';
TOP