2016-12-13 9 views
-2

У меня есть приложение для iOS. Существует функция отправки формы. При отправке формы мне нужно запустить хранимую процедуру, которую я написал в pl/sql в Oracle.Выполнение хранимой процедуры с PHP

Я создал API на PHP, чтобы вызвать хранимую процедуру, чтобы заставить ее работать. Хранимая процедура занимает 30 минут.

Я не могу оптимизировать хранимую процедуру и не хочу увеличивать время ожидания PHP.

Есть ли способ вызвать API, запустить хранимую процедуру, вернуться к пользователю с сообщением «Выполнение SP» и получить ответ после завершения выполнения хранимой процедуры?

ответ

0

Проблема с PHP - он будет запускать API и ждать, пока он не будет завершен.

Что вам нужно сделать, это создать новый процесс для запуска процедуры базы данных. Это позволит вам вернуть запрос пользователя с сообщением «Я работаю». Трюк заключается в том, как это сделать ... Исключительный PHP не включает функции для работы с потоками или процессами. Вот несколько вариантов:

  1. рамки PHP, которая включает в себя это функциональной возможностях

Я не знаю о других структурах, но Laravel и это меньше, API-ориентированных кузни Lumen включает очередь. Это система, в которой вы можете выполнить задание (например, вашу процедуру базы данных) в очередь, и будет выполняться фоновое задание, освобождая ваш основной процесс для ответа клиенту.

  1. pthreads, расширение PHP, которое позволяет работать с потоками.

Я никогда не работал с этим, поэтому я оставлю его вам для расследования.