Когда мы создаем выпуски веб-программного обеспечения, мы подготавливаем выпуск во временном каталоге, а затем заменяем каталог выпуска только что подготовленным временным каталогом:
# Move and replace existing release directory.
mv /path/to/httpdocs /path/to/httpdocs.before
mv /path/to/$newReleaseName /path/to/httpdocs
В соответствии с этой схемой случается, что примерно с 1 из каждых 15 выпусков пользователь использовал файл в исходном каталоге выпусков точно в то время, когда выполняются вышеприведенные команды, и для этого пользователя возникает фатальная ошибка.
Мне интересно, если использование символьных ссылок, как описано ниже, будет значительно быстрее с точки зрения времени обработки, что поможет уменьшить вероятность этой проблемы:
# Remove and replace existing release symlink.
ln -sf /path/to/$newReleaseName path/to/httpdocs