本人目前在做一个银企项目,项目需求,查询银行流水,查询付款结果,付款...这些查询请求都必须与银行的前置机交互。问题来了,银行的查询调用频率最小间隔 2s ,否则内部默认等待。一次项目上线后,财务正在使用该项目付款,但是我这边正在测试,一下子发过去过多请求给银行的前置机,导致财务付款付款失败.实际上是因为,前置机在正在处理这些查询请求,等到处理这个付款请求时,连接超时断开。这样的后果导致,该笔付款显示支付失败,但是网银那边却有这笔记录。 目前由于加入的银行卡数过多,导致查询任务过多,而且,一张卡的流水每天可能较多,导致银行的查询时间也会相应过久。
由于发生那一次付款失败,但是却已支付的情况。目前采用将查询任务分解,分解成一个个任务,存入 redis 中,然后有个方法定时轮询去取任务。最后暂时解决这个问题,但是目前这个方案存在缺陷。现在所有任务都放在同一个队列,一个一个任务执行。但是如果接入多家银行,不同银行的任务应该分开执行?目前该项目运行在两台机器上,如何保证两台机器运行时可靠?
有没有类似的解决方案可以参考?或者提供个想法一起讨论下
感谢!!!