我们开发了一个应用程序,它根据SQL数据库中的几个优先级数据列表获取前1个,并生成PDF文档。我在两个不同的服务器上安装了两个应用程序实例。
当两个实例从DB中获取相同的数据(前1名)时,我们遇到了问题。请您告诉我如何配置此问题。
答案 0 :(得分:0)
我建议您在检索数据时,在事务中写入ProcessStartDate
。如果存在,则表示其他系统已将其拾起。
使用日期时间而不仅仅是布尔值的原因是,如果在完成生成pdf之前某些事情崩溃了,它仍然会在表中并且您可以检测过时的项目(例如,如果它超过一个小时,您可以假设失败并清除日期时间或其他东西。
如果您在完成流程后再编写ProcessEndDate
,则可以跟踪已成功处理的内容,以便在处理过程中遇到可能的崩溃等。这当然是可选的。
在一天结束时,虽然您选择的解决方案归结为有一些方法来标记应用程序已经获取的数据。