基于应用抛出事件的 Jobs
来源:互联网 发布:聚合数据平台 编辑:程序博客网 时间:2024/06/11 22:32
define payload
创建队queue_table、queue,并启动queue
建立基于事件的job
建立proc来enqueue
测试:
CREATE OR REPLACE TYPE t_event_queue_payload AS OBJECT ( 事件 VARCHAR2(30));
创建队queue_table、queue,并启动queue
BEGIN -- Create a queue table to hold the event queue. DBMS_AQADM.create_queue_table( queue_table => 'event_queue_tab', queue_payload_type => 't_event_queue_payload', multiple_consumers => TRUE, comment => 'Queue Table For Event Messages'); -- Create the event queue. DBMS_AQADM.create_queue ( queue_name => 'event_by_app_queue', queue_table => 'event_queue_tab'); -- Start the event queue. DBMS_AQADM.start_queue (queue_name => 'event_by_app_queue');END;注意:这儿使用了前面创建的类型:t_event_queue_payload
建立基于事件的job
BEGIN DBMS_SCHEDULER.create_job ( job_name => 'event_by_app_based_job', job_type => 'PLSQL_BLOCK', job_action => 'begin INSERT INTO t_job_test VALUES (SYSDATE, ''event_by_app_based_job''); end;', start_date => SYSTIMESTAMP, event_condition => 'tab.user_data.事件 = ''天王盖地虎''', queue_spec => 'event_by_app_queue', enabled => TRUE);END;
建立proc来enqueue
CREATE OR REPLACE PROCEDURE p_send_msg AS l_enqueue_options DBMS_AQ.enqueue_options_t; l_message_properties DBMS_AQ.message_properties_t; l_message_handle RAW(16); l_queue_msg t_event_queue_payload;BEGIN l_queue_msg := t_event_queue_payload('天王盖地虎'); DBMS_AQ.enqueue(queue_name => 'event_by_app_queue', enqueue_options => l_enqueue_options, message_properties => l_message_properties, payload => l_queue_msg, msgid => l_message_handle); COMMIT;END;
测试:
SQL> exec p_send_msg;PL/SQL procedure successfully completedSQL> select * from t_job_test;CREATED DES-------------------- --------------------------------------------------2014-08-16 16:21:40 event_by_app_based_job1 row selectedSQL> exec p_send_msg;PL/SQL procedure successfully completedSQL> select * from t_job_test;CREATED DES-------------------- --------------------------------------------------2014-08-16 16:21:40 event_by_app_based_job2014-08-16 16:22:07 event_by_app_based_job2 rows selected
0 0
- 基于应用抛出事件的 Jobs
- 自动抛出异常的应用
- 自动抛出异常的应用
- 自动抛出异常的应用
- 实时接收com组件抛出的事件
- 分布式应用中基于事件驱动的应用开发模型
- Quartz.net基于数据库的任务调度管理(Only.Jobs)
- 抛出异常throws关键字的应用
- 由Jobs的联想
- Steve Jobs的家庭教育
- Jobs的成功
- Lighty的jobs设计
- Steve Jobs的演讲
- Linux的jobs命令
- laravel 的jobs(队列)
- preg_match()检查错误,并抛出异常的各种应用场景
- 第7章:自动抛出异常的应用
- jobs
- hd 2192 MagicBuilding——不要被样例吓到
- 交叉动画进度条
- 利用FFMPEG+Nginx 搭建 HLS 服务器
- android常用四大绘图类
- 10个可考虑跳槽的信号
- 基于应用抛出事件的 Jobs
- Parcel
- POJ1365 Prime Land 初等数论
- 数据结构之图(存储结构、遍历)
- Unix:第20章 正则表达式
- springMvc3.0.5搭建全程
- 使用NSOperation和NSOperationQueue启动多线程开发应用
- hdu 3299 Distant Galaxy 策略
- 涡街流量计显示值与实际值不符的主要因素