每秒检查一次表格

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

我有一个表,我想每秒检查该表的状态列,如果值为 1,则发送一条消息,如果值为 2,则发送另一条消息。

我该怎么做?

我的oracle是21.3,apex是20.1,ords 21.4

oracle oracle-apex
1个回答
0
投票

这可以使用 ajax 回调过程来实现。下面是一个 ajax 进程的示例,该进程获取相同的随机 ename(来自 emp/dept),并每 3 秒在页面项 P51_ENAME_RANDOM_JSON 中设置该值。

  • 创建Ajax Callback流程(页面处理> Ajax Callback):
    • 名称:获取消息
    • 来源:
DECLARE  
  l_emp emp%ROWTYPE;
BEGIN  
  SELECT *
    INTO l_emp
    FROM emp 
   ORDER BY dbms_random.value fetch first 1 rows only;
  APEX_JSON.open_object; -- employee {
  APEX_JSON.write('ename', l_emp.ename);
  APEX_JSON.close_object; -- }    
  APEX_JSON.free_output;
END;
  • 创建一个 JavaScript 函数来调用回调并设置每 3 秒执行一次的时间间隔(页面属性 > 函数和全局变量声明)
$(document).ready(function() {
 setInterval('getRandomEnameJson()', 3000);
});

function getRandomEnameJson () {
    apex.server.process(
        'GETMESSAGE', Callback name
        {},  
        {
            success: function (pData) {       
            console.log(pData);
            apex.item( "P51_ENAME_RANDOM_JSON" ).setValue(pData.ename);
        },
            dataType: "json"                     
        }
    );
}
© www.soinside.com 2019 - 2024. All rights reserved.