Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行svn更新时未发现异常_Java_Svn_Atomic - Fatal编程技术网

Java 执行svn更新时未发现异常

Java 执行svn更新时未发现异常,java,svn,atomic,Java,Svn,Atomic,我的情况如下: 一个配置文件(config.cfg),用户可以多次访问该文件 不同的过程 Config.cfg受版本控制-SVN 我在一个临时环境中开发和测试,当一切正常时,我转到服务器并在config.cfg上执行svn up 问题是:在svn-up期间访问config.cfg的进程出现异常:未找到“config.cfg” svn似乎会导致文件在短时间内被替换,因此我的进程无法访问该文件 非常感谢您就如何解决此问题提供的任何意见。正如此SuiteisBlack所建议的那样,使用信号量文件并

我的情况如下:

  • 一个配置文件(config.cfg),用户可以多次访问该文件 不同的过程
  • Config.cfg受版本控制-SVN
我在一个临时环境中开发和测试,当一切正常时,我转到服务器并在config.cfg上执行
svn up

问题是:在
svn-up期间
访问config.cfg的进程出现异常:未找到“config.cfg”

svn似乎会导致文件在短时间内被替换,因此我的进程无法访问该文件


非常感谢您就如何解决此问题提供的任何意见。

正如此SuiteisBlack所建议的那样,使用信号量文件并不是最好的方法


我想到的另一个解决方案是在这个过程中缓存配置文件。如果不存在,则使用配置文件的缓存版本。由于“svn更新”不会花费很长时间,因此进程将使用缓存版本,直到下次需要使用配置文件。

在进程主动读取文件时更新文件似乎不明智。我会考虑避免这种情况。我不知道如何在我的案例中应用这个概念。当我推出新的配置文件时,我正在shell中运行“svn up”。因此,我无法通过编程来做任何事情。“我无法做任何事情”是一个相当宽泛的说法。在得出这样的结论之前,你可能需要进行更多的调查。如果控制访问配置文件的进程的代码,则可以添加一个位来访问信号量文件;然后,您可以将
svn包装到一个脚本中,该脚本检查相同的信号量文件,以查看更新该文件是否安全。你可以考虑很多不同的排列。真的:-我真丢脸。我将执行你的建议。