spring定时器 定时操作同一数据库数据
2015-08-25 10:59
363 查看
~~~~(>_<)~~~~ 我们做了一个宾馆项目其中有一个要求是:
创建一个存储过程,当快要到客人预订的预抵时间时(默认提前两个小时),
将房间状态设为预留,可以提醒接待人员与客人联系确认是否入住。
该存储过程的调用应该是每隔一段时间就调用一次,你会想到什么?
有定时器吗?????????
——有!
创建一个存储过程,当快要到客人预订的预抵时间时(默认提前两个小时),
将房间状态设为预留,可以提醒接待人员与客人联系确认是否入住。
该存储过程的调用应该是每隔一段时间就调用一次,你会想到什么?
有定时器吗?????????
——有!
01 | create or replace procedure hotel_setpred |
02 | AS |
03 |
04 | t number := 2; --默认为提前2个小时 |
05 | r_roomid number; |
06 | begin |
07 | select r.roomid into r_roomid from hotel_t_Roomr,hotel_t_Predestine p |
08 | where (p.arrivetime-sysdate)/24 <= t and r.roomid=p.roomid; |
09 | if sql%rowcount != 0 then |
10 | update hotel_t_Room set state=2 where roomid = r_roomid; |
11 | if sql%rowcount != 0 then |
12 | commit ; |
13 | end if; |
14 | end if; |
15 | exception |
16 | when no_data_found then |
17 | dbms_output.put_line( '失败!' ); |
18 | when others then |
19 | rollback ; |
20 | dbms_output.put_line( '读去失败!原因是:' ||sqlerrm); |
21 | end hotel_setpred; |
22 |
23 | --Oracle定时器 |
24 | declare |
25 | jobno number; |
26 | begin dbms_job.submit( |
27 | jobno, --定时器ID,系统会自动获得 |
28 | 'hotel_setpred;' , -- 执行的过程名 |
29 | sysdate, --定时器开始的时间 |
30 | 'sysdate+5/1440' --设置定时器执行频率,这样是每个5分钟执行一次 |
31 | ); |
32 |
33 | commit ; |
34 | end ; |
35 | interval=>trunc(sysdate, 'mi' )+5/(24*60); |
36 | dbms_job.run(84); |
37 | --删除一个定时器 |
38 | exec dbms_job.remove(84); |
39 | --停止一个定时器 |
40 | exec dbms_job.broken(84,sys.diutil.int_to_bool(1)); |
41 | --改变一个定时器的执行频率城每隔一小时执行一次 |
42 | exec dbms_job.interval(84, 'sysdate+5/1440' ); |
43 |
44 | --查看调度任务 |
45 | select * from user_jobs; |
46 | --查看正在执行的调度任务 |
47 | select * from dbms_jobs; |
48 | --查看执行完的调度任务 |
49 | select * from dba_jobs; |
相关文章推荐
- Java中的泛型
- Spring3.X学习笔记
- Java IO(一)
- Java知识总结---MVC模式解析之MyBatis(四)
- java中Collection类及其子类
- spring定时器
- 二叉树后序排列Binary Tree Postorder Traversal (Java)
- SpringContextHolder.java工具类
- Spring之FactoryBean
- 二叉树中序遍历Binary Tree Inorder Traversal (Java)
- Java中正则表达式及其常用类Math、Calendar、Date、BigDecimal、BigInterger、System、Rondom的使用
- 《Java实战开发经典》第五章5.4
- 二叉树前序遍历Binary Tree Preorder Traversal (Java)
- 插入排序Sort a linked list using insertion sort in Java
- Java 手机号码格式化为182****5716
- java ubantu
- Java NIO 为什么比IO快
- 归并排序Merge Sort LinkedList in Java
- Java 生产者模式 消费者模式
- JAVA基础8(代码剖析)