PHP - Как ждать записи диска после вызова commit?
Я использую postgresql. Я должен вызвать JAR-файл, который выполняет некоторые операции после чтения БД, в сценарии php.
$ connection - это PDO. Я заметил следующее поведение:
Сценарий 1:
$connection->commit();
exec_shell(java -jar jarname) //it does not give expected behaviour
Сценарий 2:
$connection->commit();
sleep(60);
exec_shell(java -jar jarname) //it does give expected behaviour
Итак, вопрос: как ждать, пока commit записывает все данные на диск, прежде чем продолжать с инструкциями?
fsync включен в postgres.conf синхронный_коммит включен в postgres.conf
1 ответ
У меня нет опыта работы с PDO, но если вы можете проверить результат коммита, вы можете попробовать что-то вроде этого:
$commit_status = $connection->commit();
if($commit_status === TRUE)
{
exec_shell(java -jar jarname)
}
Пока у вас нет ответа от состояния коммита, exec_shell не будет вызываться