如何创建 Oracle 触发器以根据状态动态分组/排队进程



根据以下示例(使用触发器和序列(需要以下方面的帮助:

我有一个参考表 (t2(,其中列 seq.nextval

为 queue_num,sysdate,status (处理/完成/失败(,当源 (t1( 加载新数据时,触发器将拾取新插入的记录并将其加载到参考表 (t2( 并用状态 PROCESSING 和 seq.nextval 标记为queue_num。

我无法弄清楚的是,我们最多只有 5 台服务器,每台服务器最多只能处理 20 个处理状态作业。我将如何创建触发器,这些触发器将在 5 台服务器上加载数据,每台服务器最多 20 条记录,然后当它达到最大值时,一旦 QUEUE 中的一个处理作业变为完成,仍然需要加载的任何其他记录都将加载?

谢谢 :-(

"我将如何创建触发器来跨 5 台服务器加载数据">

可能你不会。从T1推动工作是一个坏主意,正是因为没有办法根据T2的状态来调节流量。

相反,你应该有后台进程 - 作业 - 轮询T1新记录,抓取一些(20?(并处理它们,也许填充T2(如果仍然需要,不确定你的实际流程架构是什么样子(。当 20 条记录用尽时,作业轮询T1再做一些,然后循环访问表或进入睡眠状态。

显然这是相当模糊的,但恐怕这符合问题的粗略性。请免费详细说明您的问题,并提供更多详细信息。

最新更新