Вопрос № 142649: Доброго времени суток! У меня 2 вопроса. 1. Есть скрипт, который производит обращение к БД и выполняет некоторую работу с таблицей. Как сделать так, чтобы при вызове второй копии этого скрипта не нарушалась целостность данных. Т....
Вопрос № 142.649
Доброго времени суток!
У меня 2 вопроса.
1. Есть скрипт, который производит обращение к БД и выполняет некоторую работу с таблицей.
Как сделать так, чтобы при вызове второй копии этого скрипта не нарушалась целостность данных. Т.е. пока работает 1 скрипт, 2 скрипт не может получить доступа к БД.
2. Скрипт при вызове с web-интерфейса должен корректно обрабатывать длинную операцию в фоне (тоже обращении к БД), а не вываливаться в обрыв соединения. Как это реализовать.
Отвечает: Товарищ Бородин
Здравствуйте, Скибардин А.А.! Можно проверять при запуске скрипта, не работает ли уже какая-либо из копий скрипта с БД. И если работает - то не разрешать скрипту работу с БД. Проверять можно с помощью сессий - в скрипте инициализируете сессию, она будет сохранена в специальном каталоге для хранения сессий. Переменная нужна только для того, чтобы каталог для хранения сессий не был пустой. То есть, основной принцип - пока скрипт работает, существует сессия. Проверяете наличие файлов в этом каталоге - и если
Вы не используете сессии на сайте в еще каких-либо целях, то наличие файлов в этом каталоге будет прямо указывать на то, что идет работа с базой данных. Завершение выполнения скрипта ОБЯЗАНО включать в себя вызов функции session_destroy(). Иначе сессия сохранится до тех пор, пока Вы не закроете браузер. И до этого момента работа с базой данных будет невозможна. С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 30.08.2008, 08:00 Оценка за ответ: 5