今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
来源:互联网 发布:程序员英语词汇app 编辑:程序博客网 时间:2024/04/26 07:54
今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说是正在执行的程序被强制停止,然后触发器正常启动触发执行,可是都没有说到一种情况,而这种情况我恰好遇到了,大家也许没加到过,但是很普通,就是触发器正常执行,程序也正常执行,它的执行情况是这样的:首先触发器执行,然后开始正常程序操作,可是操作到一半的时候触发器的时间到了,这时候触发器启动了,再次来了一个线程,但是这个线程属于等待当中,然后继续上一次没有执行完的线程,直到上一次线程执行完毕以后开始执行本次正在等待的线程,然后刚开始一点点的时候触发器时间又到了,然后有开启了一个新的线程,此线程又在等待当中,然后执行上一次线程,上一次还没有执行完(快完的时候)触发器时间又到了,又来了一个线程,现在有两个线程在等待,然后继续前一个线程,前一个线程执行完毕以后,执行最先排队等待的线程。如此类推。最后我执行了进一个小时后等待线程达到了20-30个(没有具体统计,但大体看了一下,差不多了),可奇怪的是,这些直到最后也没有报错,也没有说什么内存不足啊什么的,这些线程都等哪去了?后来我执行了更长时间也没有问题,就是累计了大量的线程等待中,这个问题真是郁闷啊,郁闷点有如下几点:
1、每一次触发器执行的时候都是从头来的,它是怎么记住本次没有执行完毕的线程的而且还准确的记住位置,按道理来说既然触发器启动了,就程序从头开始了,那么前一次线程应该被迫终止啊;
2、这个没有执行完的线程有是被谁记住的?触发器还是java程序的本身的线程池?(我用的定时调度器是quartz2.2.1);
3、难道触发器还有记录进程的作用吗?
我是菜鸟,有高手能不能帮我解答一下这个问题啊,谢谢了
还有一个问题,后来随着线程等待越来越多,后来的每个线程消耗的时间越来越多
0 0
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- 写了一个查询数据库的程序,不熟的Tomcat6。查询条件为英文时运行正常,为中文时出现乱码。后在tomcap的server.xml中加入useBodyEncodingForURI="true解决了问题
- mysql触发程序(触发器)
- 简单触发器,用作定时程序时用
- 触发器UPDATE遇到一个问题
- 一个表上的多个触发器执行顺序问题
- 一个表上的多个触发器执行顺序问题
- 【ASP.NET 问题】IIS发布网站后出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"的解决办法
- 网页时间定时触发器
- 触发器问题(怎样在一个数据库中的触发器中访问另一个数据库里面的表呢)
- 在Linux中定时执行一个程序的方法之at命令
- 如何在linux上定时执行程序
- 在linux下执行定时任务运行一个java程序
- 在论坛中出现的比较难的sql问题:20(触发器专题2)
- 在Java中如何设置一个定时任务,在每天的一个时间点自动执行一个特定的程序
- 在Java中如何设置一个定时任务,在每天的一个时间点自动执行一个特定的程序
- 关于触发器要弄清楚的问题(着重后触发器)
- 虚拟机中安装Ubuntu到最后时卡死在:执行安装后执行的触发器
- idangerous.swiper.js
- 函数说明(fileno)
- linux i2c_driver 结构体解析
- mysql中case when then 的使用
- android中style属性值介绍
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- GTK+引起的一场腥风血雨
- 第121天
- GUGS AND ROSES-枪花
- perl函数说明(flock)
- 用expressjs写RESTful API
- Erlang中的数据类型
- 分析下罗本为什么讨人厌
- UC高级编程--实现myls程序