基于异步响应轮询Oracle表的最佳方法

问题描述 投票:0回答:1

希望获得有关处理异步响应的最佳方法的一些指导,该方法最终会更新Oracle表中的状态标志。

我基本上有一个使用APEX_WEB_SERVICE API进行REST调用的PL / SQL例程。

我的问题是,异步地,这最终将更新表中的状态标志,这将告诉我该操作是正常还是失败。

轮询此表以检查是否已使用Oracle PL / SQL返回OK或FAIL响应的最佳方法是什么?

我正在查看DBMS_LOCK.sleep(),但不确定这是否是最佳方法。

不确定DBMS_ALERT是否也可以工作吗?

sql oracle asynchronous plsql oracle12c
1个回答
0
投票

而不是建议您不定期轮询表,而是建议将Oracle Advanced Queues与Oracle Scheduler一起使用。 AQ正是为这种事情而设计的。您可以创建一个“计划的”作业,该作业由发送到队列的消息(由异步进程在更新表的同时发送)触发。 Scheduler会看到该消息并运行适当的作业或作业链以完成处理。

参见基本示例:https://pmdba.wordpress.com/2017/08/21/aq-basics/

© www.soinside.com 2019 - 2024. All rights reserved.