因此,我们有一些系统(大约6个)将信息作为文件输出到我们的FTP,一旦接收到文件,它立即被处理,输出存储在数据库中,源文件被删除。另一个应用程序需要每晚运行一个特定的作业,但是,只有在处理完源系统的所有文件后才应该启动作业。 因此,解决方案是轮询数据库以查看文件是否已经处理,一旦我们知道一切都已完成,我们就会触发工作。
我的问题是,有更好的方法吗?也许基于消息的方法? 我正在寻找的方法不仅适用于这个系统,还有一些系统还需要在源系统的数据到达时触发作业,因此我正在寻找可扩展的解决方案。
答案 0 :(得分:0)
一种可能的解决方案是将每日夜间作业的触发器放入数据库导入逻辑中,以进行每个数据库导入/文件处理。
您的夜间工作需要检查导入的完整性,即所有文件都已正确导入。
使用此功能,您不再需要轮询,而是调用每个导入文件的完整性检查。
注意竞争条件,确保并行完成的两个导入不会同时触发夜间作业。