Запустите SQL-запрос с тайм-аутом в PHP или Как в PHP, чтобы остановить SQL-запрос, когда он уже начался?

Я прочитал документацию по oci_cancel, но она кажется мне немного нечеткой.

Есть ли oci_cancel убить процесс sql на сервере?

Если нет, то как я могу создать сценарий, который выполняет SQL-запрос, ждет мгновение и, если запрос превышает 10 секунд (например), отменить запрос на сервере?

Извините, если этот вопрос похож на тот, который был задан некоторое время назад, но я не нашел удовлетворительного ответа.

3 ответа

Решение

В конце концов мне пришлось использовать решение, которое не знает, является ли оно лучшим, но это была смесь вещей:

Я уже использовал что-то подобное, чтобы сохранить результаты запросов в CSV-файлах, а затем поднять их в переменную сеанса.

Что ж, я использую этот способ для создания CSV-файла с результатом запроса, отправляя запрос в фоновом режиме PHP с помощью скрипта в php с помощью set_time_limit(10), а затем ожидая время (10 секунд) до тех пор, пока Результат запроса сохранен в переменной сеанса. Если время (10 секунд) прошло и я не сохранил запрос в переменной сеанса, я продолжаю делать следующие действия.

PDO позволяет вам указать тайм-аут запроса с атрибутом "ATTR_TIMEOUT", хотя это полностью зависит от того, поддерживает драйвер его или нет.

Используйте http://php.net/set_time_limit, если вы хотите отменить выполнение скрипта и прочитать об отмене запроса оракула

Другие вопросы по тегам