我有一个预订酒店的网站.预订成功后,将发送一封电子邮件给客户.我做了如下:
- Update table "booking"
- Check the result
+ If true, send email
+ Else return error
Run Code Online (Sandbox Code Playgroud)
但如果没有发送电子邮件怎么办?已插入数据库但未发送电子邮件.这使得预订操作不对.如何进行数据库操作和发送电子邮件交易?有没有简单的方法呢?A和B必须成功或不成功.
严格意义上的交易不能在数据库内部扩展,也不能在数据库外部扩展.所以我们必须重新定义"交易",要么所有行动都失败,要么全部成功.
这是一个想法:
如果失败,请纾困(无需回滚)
发送电子邮件
有两点需要了解: