背景
最近有一个业务,大致如下:
问题点 : 平台不知道客户什么时候完成签约。目前采用定时任务几分钟轮询一次,但若是每次定时任务执行都去查询资方,就有些浪费资源了。因为客户发起签约后,可能并没有签约。
简单解决方案
- 通过 redis 记录每个客户签约结果的 查询次数 queryCount,查询失败次数 errorCount,失败次数阶加和 errorCountSum(本想通过 2的N次幂方式,比较下来这种指数增长太过迅速)。
- 比对当前查询次数 queryCount 是否大于 失败次数阶加和 errorCountSum。 大于则执行,否则不执行查询资方逻辑。
- 实现了 失败 n 次,定时任务 n 次不执行查询资方的效果。
- 当然,客户 重新发起 签约的时候,会重新计数。