Я пробовал несколько различных циклов try/catch, чтобы попытаться решить проблемы автоматически, но они всегда кажутся причиной смерти программного обеспечения.Повторите попытку/улов, когда он сбой
$doLoop = true;
while ($doLoop) {
try {
//do a thing
insertIntoDb($data);
} catch (Exception $e) {
//try again
insertIntoDb($data);
//write error to file
writeError($e);
}
}
Вот моя оригинальная попытка/улов.
Проблема в том, что сервер MySQL «уходит», и мне нужно поймать это исключение и продолжать повторять попытку, пока он не вернется.
Что я могу изменить здесь, чтобы это продолжало повторять попытку до тех пор, пока не будет успешным?
вы были очень близки к решению :) – dynamic
Я умолял вас заглянуть в _why_ ваш сервер MySQL «уходит». Одно определение безумия пытается повторять одно и то же снова, ожидая разные результаты. – sjagr
Если ваш db иногда «уходит», тогда ваше решение не должно содержать повторения в PHP, необходимо исправить проблему с подключением. Этот код представляет собой бесконечный цикл, ожидающий своего существования. –