1

所以我们有一些系统(大约 6 个)将信息作为文件输出到我们的 FTP,一旦收到文件,它就会立即处理,输出存储在数据库中,源文件被删除。另一个应用程序需要每晚运行一个特定的作业,但是,只有在源系统中的所有文件都已处理后,它才应该启动该作业。所以解决这个问题的方法是轮询数据库以查看文件是否已被处理,一旦我们知道一切都完成了,我们就会触发工作。

我的问题是,有没有更好的方法来做到这一点?也许是基于消息的方法?我正在寻找的方法不仅适用于这个系统,一旦来自源系统的数据到达,更多的系统还需要触发作业,所以我正在寻找一个可扩展的解决方案。

4

1 回答 1

0

一个可能的解决方案是将 jour nightly 作业的触发器放入每个数据库导入/文件处理的数据库导入逻辑中。

您的夜间工作需要检查导入的完整性,即所有文件都正确导入。

有了这个,您将不再需要轮询,而是为每个导入的文件调用完整性检查。

注意竞态条件,确保两个并行完成的导入不会同时触发夜间作业。

于 2012-12-20T10:20:32.657 回答