请教一个很没头绪的问题的解决思路,郁闷了好久了……
系统A有两个表,处理命令表和处理结果表,系统B随时都可能往处理命令表中插入处理命令,系统A必须随时侦听获得到处理命令表的新记录,并执行命令(执行命令花费的时间比较长,5分钟左右),把执行结果写入处理结果表,并通知系统B取结果!
//现在问题的关键是在java程序中如何实时地侦听数据库表的变化啊!小弟学艺不精,达人们帮忙想想吧!
------解决方案--------------------让B往表里插记录之前直接通知A呗。
------解决方案--------------------以我现在的知道就是在java里定一个定时器,搜索一下数据,数量发生变化的话执行你的代码。
还有就是总是听人家说拦截器,不知道可不可以实现,而且也不知道怎么用。
------解决方案--------------------嗯,楼上说的是过滤器吗?Filter不知道能不能达到要求,过滤所有的插入操作。
------解决方案--------------------1.在更新处理命令表时,记录一下更新时间。
可以写一个触发器或者利用Oracle的审计功能来实现。
2.在java中写一个线程,查询最后更新时间,
3.判断是否有更新
4.做处理
------解决方案--------------------看看
------解决方案--------------------1.系统A和B直接通信
2.命令表和结果表创建触发器,将数据变化插入到另一个表,程序定时检测这个表,执行命令或取结果后清空表
3.新增一个字段记录插入时间,根据这个时间获取最近更改的数据
------解决方案--------------------不知道用Hibernate能不能实现。没试过。。
------解决方案--------------------让系统B插入命令之后,给你系统A发送一个消息
------解决方案--------------------系统A 应该做一个接口,让B来调用,这样B做的操作A就可以控制了。
------解决方案--------------------今天刚学的Oracle的触发器,应该能解决这个问题吧