脚本任务在检查上次修改日期时锁定文本文件

时间:2013-04-19 07:19:50

标签: vbscript ssis

我们有两台服务器称ServerA和ServerB。在ServerA中,程序包将从FTP加载文本文件,该文件由ServerB中的其他程序包推送。这两个包几乎同时运行。

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

问题是,如果服务器A中的脚本任务已经启动(已开始检查每10秒的最后一次修改日期)并且ServerB中的包试图将数据导出到同一文件,则会抛出错误{ {1}}。我该如何解决这个问题?请指教我..

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题,例如:

  • 在导入脚本中启用错误处理(On Error Resume Next)并跳过导入,或循环直到另一个进程写入文件。请注意,错误处理是危险的,因为它将有效地抑制未显式处理的所有错误消息。只在本地启用此功能,并在不再需要时立即将其禁用(On Error Goto 0)。

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

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