Я работаю над проектом PHP Yii. В этом у меня есть функция ETL (в папке консоли, которая вызывается из контроллера внешнего интерфейса), которая требует больше времени для выполнения througly, так как она вызывает много зависимых функций и выполняет много хранимых процедур при выполнении с журналами хода выполнения функции. По завершении полного выполнения я устанавливаю флаг успеха в таблице базы данных, а при сбое я хочу установить его как неудачный. Вместо того, чтобы писать блоки try try на всех необходимых шагах и функциях, можем ли мы проверить, перестала ли выполняться функция между ними, чтобы мы могли обновить флаг как неудачный.
frontend / controller:
$test = exec('php _protected/yii client-integration/run-client>/dev/null 2>&1 & echo $!', $output);
// Return will return non-zero upon an error
if ($test > 0) {
print_r($test);
echo "Success";
} else {
print_r($test);
echo "Failed";
}
display($test);
$ test всегда возвращает сообщение об успешном выполнении (если блокируется) с идентификатором процесса, хотя я возвращал подверженный ошибкам код в консольном методе, т.е. в методе run-client.