-1

我们有两台服务器,分别是 ServerA 和 ServerB。在 ServerA 中,一个包将从 FTP 加载文本文件,该文本文件由 ServerB 中的另一个包推送。这两个包几乎同时运行。

ServerA 中的包将在加载之前检查 FTP 中源文件的最后修改日期。如果最后修改日期与当前日期相同,它将加载文件。如果日期不同,它将等待 10 秒并检查最后修改的日期并将其与当前日期进行比较。这将一直发生,直到服务器 B 将最新文件推入 FTP 路径。我通过脚本任务完成了此操作。

问题是,如果服务器 A 中的脚本任务已经启动(开始每 10 秒检查一次最后修改日期)并且服务器 B 中的包试图将数据导出到同一个文件,它会抛出一个错误说"The file is used by the another process"。我该如何解决这个问题?请给我建议。。

4

1 回答 1

0

有几种方法可以处理这个问题,例如:

  • 在导入脚本中启用错误处理 ( On Error Resume Next) 并跳过导入,或者循环直到其他进程完成对文件的写入。请注意,错误处理是危险的,因为它会有效地抑制所有未明确处理的错误消息。仅在本地启用它,并在不再需要时立即禁用它 ( On Error Goto 0)。

  • 让导出脚本创建一个锁定文件,在导出完成后将其删除,并让导入脚本在尝试导入数据文件之前检查是否缺少该锁定文件。

  • 让导出脚本将数据导出到一个临时文件,并在导出完成后重命名该临时文件。

于 2013-04-19T08:58:46.140 回答