本人目前在做一个银企项目,项目需求,查询银行流水,查询付款结果,付款...这些查询请求都必须与银行的前置机交互。问题来了,银行的查询调用频率最小间隔 2s ,否则内部默认等待。一次项目上线后,财务正在使用该项目付款,但是我这边正在测试,一下子发过去过多请求给银行的前置机,导致财务付款付款失败.实际上是因为,前置机在正在处理这些查询请求,等到处理这个付款请求时,连接超时断开。这样的后果导致,该笔付款显示支付失败,但是网银那边却有这笔记录。 目前由于加入的银行卡数过多,导致查询任务过多,而且,一张卡的流水每天可能较多,导致银行的查询时间也会相应过久。
由于发生那一次付款失败,但是却已支付的情况。目前采用将查询任务分解,分解成一个个任务,存入 redis 中,然后有个方法定时轮询去取任务。最后暂时解决这个问题,但是目前这个方案存在缺陷。现在所有任务都放在同一个队列,一个一个任务执行。但是如果接入多家银行,不同银行的任务应该分开执行?目前该项目运行在两台机器上,如何保证两台机器运行时可靠?
有没有类似的解决方案可以参考?或者提供个想法一起讨论下
感谢!!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.