Сегодня я прочитал django.contrib.sessions.backend.file
, в методе save
SessionStore
есть что-то вроде следующего, которое используется для достижения многопоточной целостности сохранения:
output_file_fd, output_file_name = tempfile.mkstemp(dir=dir,
prefix=prefix + '_out_')
renamed = False
try:
try:
os.write(output_file_fd, self.encode(session_data))
finally:
os.close(output_file_fd)
os.rename(output_file_name, session_file_name)
renamed = True
finally:
if not renamed:
os.unlink(output_file_name)
Я не совсем понимаю, как это решает проблему целостности.