Каково различие между PESSIMISTIC_READ и PESSIMISTIC_WRITE в JPA?

Я предполагаю, что что-то вроде этого должно сделать это. Это в основном пишет содержание в новый файл и заменяет старый файл новым файлом:

from tempfile import mkstemp
from shutil import move
from os import fdopen, remove

def replace(file_path, pattern, subst):
    #Create temp file
    fh, abs_path = mkstemp()
    with fdopen(fh,'w') as new_file:
        with open(file_path) as old_file:
            for line in old_file:
                new_file.write(line.replace(pattern, subst))
    #Remove original file
    remove(file_path)
    #Move new file
    move(abs_path, file_path)
45
задан Manuel Drieschmanns 7 November 2017 в 23:23
поделиться

1 ответ

Одна - это блокировка чтения, а другая - блокировка записи или во время чтения или обновления, соответственно.

FTA:

  • PESSIMISTIC_READ. Менеджер сущности блокирует объект, как только транзакция читает это. Замок удерживается до завершения транзакции. Этот режим блокировки используется, когда вы хотите для запроса данных с помощью повторяемого чтения семантика. Другими словами, вы хотите чтобы гарантировать, что данные не обновляется между последовательными чтениями. Этот режим блокировки не блокирует другие транзакции от чтения данных.

    PESSIMISTIC_WRITE. Менеджер сущности блокирует объект, как только транзакция обновляет его. Этот замок режим вызывает сериализацию среди транзакции, пытающиеся обновить данные объекта. Этот режим блокировки часто используется, когда высока вероятность сбоя обновления среди одновременных обновление транзакций.

22
ответ дан 26 November 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: