从PHP执行存储过程

时间:2016-12-13 14:43:35

标签: php oracle

我有一个iOS应用程序。提交表单有一项功能。在表单提交时,我需要运行我在Oracle中的pl / sql中编写的存储过程。

我在PHP中创建了一个API来调用存储过程使其工作。存储过程需要30分钟才能执行。

我无法优化存储过程,也不想增加PHP的超时。

有没有办法调用API,触发存储过程,用一条消息说“ - 执行中的SP”并在存储过程执行完成后得到响应后返回给用户?

1 个答案:

答案 0 :(得分:0)

问题在于PHP - 它将运行API并等到它完成。

您需要做的是生成一个新进程来运行数据库过程。这将允许您使用“我正在工作”消息返回用户的请求。诀窍是如何做到这一点......开箱即用的PHP不包括使用线程或进程的函数。以下是几个选项:

  1. 包含此功能的PHP框架
  2. 我不了解其他框架,但Laravel并且它更小,以API为重点的表兄Lumen包含队列。这是一个系统,您可以将作业(如数据库过程)推送到队列中,后台任务将接管,从而释放主进程以回复客户端。

    1. pthreads,一个允许使用线程的PHP扩展。
    2. 我从来没有使用过这个,所以我会留给你调查。