我有以下要求。
一个进程( process -1)从DB读取文件,获取文件并将检索到的文件放置在位置/process1/data中;最后将文件放在/application/shared_data中。
第二个进程( process -2)将检查共享目录/application/ shared _data中的数据。
这两个过程相互独立,连续运行。
当Process-1放置一个文件时,比如从/process1/data到/application/shared_data的1.zip;同时process-2尝试读取文件本身的可能性;那么我们如何防止这种情况。
也就是说,process-2应该读取给定的文件,只有当process-1已经将文件完全放置在共享目录中时。
任何帮助都很感激。
你好,Vipin
发布于 2014-05-06 10:54:31
要么让这两个进程互相发送消息,要么先将文件放在临时名称下(在目标目录中),然后将其移动到其最终位置。POSIX保证移动文件是原子操作。
例如。
temp=$(mktemp $(dirname $target).XXXXXX)
cp "$source" "$temp"
mv "$temp" "$target"https://stackoverflow.com/questions/23492647
复制相似问题