Остановите несколько сеансов доступа к одному и тому же файлу одновременно - PullRequest
3 голосов
/ 14 июня 2010

Можно ли заблокировать файл, чтобы он не открывался, когда библиотека GD обращается к нему?

То, чего я хочу достичь, похоже на уровень изоляции «serialzable» базы данных ... Я хочу обеспечить, чтобы только один сеанс / пользователь мог одновременно получить доступ к изображению, чтобы остановить «грязное чтение».

Мое приложение позволяет пользователям добавлять изображение к большему изображению.

например

  • большое изображение пусто
  • Радж и Джанет загружают свои изображения
  • Сессия Радж открывает большое изображение.
  • 1 мс позже сеанса Джанет открывает большое изображение.
  • Сессия Радж добавляет его изображение и сохраняет большое изображение
  • 1 мс позже сеанса Джанет добавляет свое изображение и сохраняет его версию большого изображения.
  • В результате изображение Радж не в окончательное изображение как версия Джанет переписал.

Надеюсь, это достаточно ясно.

1 Ответ

2 голосов
/ 14 июня 2010

Выезд стая .Вы можете либо заблокировать файл, с которым вы работаете, либо создать «файл блокировки» где-нибудь еще в файловой системе, который проверяют все ваши скрипты.

...