【问题标题】:Database transaction combined with REST call数据库事务结合 REST 调用
【发布时间】:2015-12-07 20:19:48
【问题描述】:

我必须将记录保存到数据库,然后将一些数据发送到安静的 Web 服务。我需要它们一起发生。如果一个失败,那么另一个也不应该发生。因此,例如,考虑以下代码:

saveRecords(records);
sendToRestService(records);

如果 saveRecords 因违反数据库约束而失败,那么我不希望发生其余调用。我可以让 saveRecords 在它自己的事务中发生并在调用 sendToRestService 之前提交它,但其余服务仍有可能关闭。我可以跟上其余服务是否成功,如果没有,则稍后尝试发送它们。我只是想知道是否有更好的策略,因为这似乎很常见。

感谢您的建议。

【问题讨论】:

    标签: java database spring rest transactions


    【解决方案1】:

    为什么不试试观察者设计模式?

    我假设 saveRecords(records) 和 sendToRestService(records) 方法属于两个不同的类。

    如果您使用观察者设计模式,您可以通知包含 sendToRestService() 方法的类,以防调用类对象发生变化。

    参考:Observer Design Pattern

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 2013-11-11
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多