开发概述——退款记录导出至excel

本文介绍了开发退款记录导出至Excel功能的过程,包括异步任务、定时任务、任务状态管理和错误重试策略。在实现中,遇到如接口废弃、批量查询限制等问题,通过使用fork-join框架优化接口调用,并通过限制重试次数避免资源浪费。最后,文章指出在功能设计上的思考,强调信息同步和主业务不受影响的重要性。
摘要由CSDN通过智能技术生成

最近做了一个(奇坑的)需求,用户退款信息导出至excel。听起来似乎是一个简单的小功能,但是做起来却发现有数不清的大坑- -,整个项目我大约花了2-3周时间去开发(当然中间穿插着一些其他的需求),并后续仍在优化或解决bug。不过现在已经完成,大部份的坑也已经被填满了。

首先来说下整体的开发流程图:


对于这个需求,首先我们需要明确一点:必须要异步来做,导出任务很耗时间(当记录较多时,时间会比较长),如果采用同步策略,势必影响用户的体验。

然后我们来分析下开发的流程图,首先我们有两个异步的定时任务:正常的退款导出任务以及失败重试的定时任务。前者负责正常任务的执行,后者负责失败的任务的重试。那么怎么来定义任务?我们用了一张表:task表。建表语句如下:


主要用到的表字段有以下几个:taskId, status, rule。taskId很好理解,每个任务都有自己的编号,我们需要根据编号来执行相依的任务。那么具体的执行呢?以退款导出为例,我们需要调用退款列表接口,需要的入参如下图展示的那样:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值