数据库事务与REST调用相结合

时间:2015-12-07 20:19:49

标签: java database spring rest transactions

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

saveRecords(records);
sendToRestService(records);

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

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

为什么不试试Observer设计模式?

我假设saveRecords(记录)和sendToRestService(记录)方法分为两个不同的类。

如果使用Observer设计模式,则可以在调用类对象发生更改时通知包含sendToRestService()方法的类。

参考:Observer Design Pattern