标签: php oracle
我有一个iOS应用程序。提交表单有一项功能。在表单提交时,我需要运行我在Oracle中的pl / sql中编写的存储过程。
我在PHP中创建了一个API来调用存储过程使其工作。存储过程需要30分钟才能执行。
我无法优化存储过程,也不想增加PHP的超时。
有没有办法调用API,触发存储过程,用一条消息说“ - 执行中的SP”并在存储过程执行完成后得到响应后返回给用户?
答案 0 :(得分:0)
问题在于PHP - 它将运行API并等到它完成。
您需要做的是生成一个新进程来运行数据库过程。这将允许您使用“我正在工作”消息返回用户的请求。诀窍是如何做到这一点......开箱即用的PHP不包括使用线程或进程的函数。以下是几个选项:
我不了解其他框架,但Laravel并且它更小,以API为重点的表兄Lumen包含队列。这是一个系统,您可以将作业(如数据库过程)推送到队列中,后台任务将接管,从而释放主进程以回复客户端。
我从来没有使用过这个,所以我会留给你调查。