最近完成了一个处理信用卡处理的项目。我面临的困难之一是处理通知消息的延迟/可能失败。最复杂的示例是:
- 发送付款请求的外部系统
- 我的系统将该请求转换为对支付网关的请求
- 将用户发送到网关
- 等待用户执行付款
- 用户返回我的系统,但是一直被保留,直到系统收到成功/失败通知
- 根据故障将用户发送回外部系统
更加困难的事实是,一旦发送通知失败,网关将尝试每15分钟发送通知数小时。
我使用未决事务的数据库记录解决了它,然后从返回中加上成功的延迟侦听器(用于通知和事务处理)来检测返回的成功和失败...
相当困难!
但是,这一定已经解决了无数次,所以最佳实践是什么?
我看到我的未来将是编写所有这些系统之间的处理程序,并管理时间延迟和可能的网络故障,因此我希望遵循最佳实践。
书籍/文章推荐会很棒。
提前致谢!