定时任务失败重试时间延长记录

背景

最近有一个业务,大致如下:

客户 平台 资方 发起签约 请求发起签约接口 返回签约方案 客户是否签约完成,平台并不知道 轮训客户签约结果 签约完成,执行其他操作 客户 平台 资方

问题点 : 平台不知道客户什么时候完成签约。目前采用定时任务几分钟轮询一次,但若是每次定时任务执行都去查询资方,就有些浪费资源了。因为客户发起签约后,可能并没有签约。

简单解决方案

  1. 通过 redis 记录每个客户签约结果的 查询次数 queryCount,查询失败次数 errorCount,失败次数阶加和 errorCountSum(本想通过 2的N次幂方式,比较下来这种指数增长太过迅速)。
  2. 比对当前查询次数 queryCount 是否大于 失败次数阶加和 errorCountSum。 大于则执行,否则不执行查询资方逻辑。
  3. 实现了 失败 n 次,定时任务 n 次不执行查询资方的效果。
  4. 当然,客户 重新发起 签约的时候,会重新计数。

猜你喜欢

转载自blog.csdn.net/H_Rhui/article/details/108507348