以下是我的情景:
我的问题:
我最初的解决方案:
我最初的解决方案限制:
我的问题(终于!):
所有这些都变得非常复杂,它增加了bug风险和代码维护问题。我真的不喜欢它! 有没有人遇到过这种问题?它们是可接受的解决方法吗? 有没有人对我的场景有一个干净的解决方案?
谢谢!
答案 0 :(得分:1)
最后,简单的解决方案永远是更好的解决方案!
我没有使用“实体锁定”概念的所有复杂性,而是在执行请求之前最终拒绝预先验证所有必需的数据和实体状态。
更确切地说,在遇到CreateParent创建的已有数据时,不是让CreateChild进程自身崩溃,而是在执行CreateChild消息之前完全验证数据库中的一切正常。
此解决方案的缺点是CreateChild的实现必须知道CreateParent将生成什么特定数据,并在开始执行之前验证它的存在。但严重的是,这比锁定跨系统中的所有内容要好得多!