У меня есть небольшой веб-сервер, выполняющий некоторые операции с запросом POST. Он считывает файл данных, выполняет некоторые проверки и затем сохраняет файл, добавляя в него информацию из POST.Параллельный доступ к файлу данных в Python
Проблема заключается в том, что если два клиента выполняют запрос POST почти в одно и то же время, оба будут читать один и тот же файл, затем один напишет файл, содержащий новую информацию, а затем другой клиент напишет файл, содержащий его новую информацию, но без информации от другого клиента, поскольку эта часть не была в файле, когда она была прочитана.
f = open("foo.txt", "r+")
tests_data = yaml.safe_load(f)
post_data = json.loads(web.data())
#Some checks
f.write(json.dumps(tests_data))
f.close()
Я хотел сценарий «ждать», не давая ошибку, в «открытой» линии, если файл уже открыт другим процессом того же кода, а затем прочитать файл, когда другой процесс и закрыл файл.
Или что-то еще, если существуют другие решения.
имеет какое-то системы массового обслуживания, может быть, где ваша программа записывает в очередь людей, в настоящее время доступа к некоторым вспомогательному файлу данных, а затем выполняет, если назначенный уникальный идентификатор находится в передней части файла. попросите программу очистить строки своего экземпляра. или же вы хотите это сделать. – jh44tx