只显示主题贴
Quartz可以配置线程池大小,如果任务多,执行频繁,把线程池配大点就好了,只有当线程池的线程都在跑task时,才会阻塞后面的任务
pheh 写道galaxystar 写道在quartz中, 建议每个任务的工作量, 最好是均衡的, 因为, 我发现, 有时, 某个task very busy的时候, 其他task会阻塞.
甚至导致, 当前应用出现响应超时的现象.
部署quartz的时候, 裸体单机感觉不错.
我的项目中用quartz只是做了一个定时任务提醒功能,每个提醒任务的工作量基本上一样,就是发出邮件或是屏幕提醒之类的,没有发现你所有的问题。
P.S.quartz不是多线程的吗?怎么会 ...
- 进入论坛 Java 版
我用ReadWriteLock配合Proxy在service层实现了针对少量数据的缓存:
http://dev2dev.bea.com.cn/techdoc/2007/07/java-soa-ReadWriteLock.html
不用aop是因为很难得到方法参数,而且失去了编译期的强类型检查。
- 进入论坛 Java 版
《Spring 2.0核心技术与最佳实践》一书由浅入深,详细介绍了Spring 2.0框架的几乎全部内容,并重点突出2.0版本的新特性,是一本注重实践而又深入理论的书,力图为读者展示如何应用Spring 2.0框架创建灵活高效的J2EE应用程序,并提供了一个真正可直接部署的完整的Web应用——Live在线书店http://www.livebookstore.net,读者可以从中学习设计并实现一个基于Spring 2.0的完整的多层轻量级J2EE应用程序的方法,积累大量有用的经验和技巧。
本书节选内容可以在CSDN上在线阅读:
http://club.book.c ...
- 进入论坛 Java 版
先select count(*)把符合条件的纪录数量得到,然后产生随机数0-(N-1),取出这条记录
如果你要反复取而且结果与上次不同,就先把纪录的ID读到一个数组,比如Long[] ID,第一次随机产生[0, length)之间的数,取出ID[rnd],然后把数组的ID[rnd]和最后一个元素交换,第二次随机产生[0, length-1)之间的数,取出ID[2nd],也把它与倒数第二个交换,……保证length次随机没有重复。
- 进入论坛 Java 版
参考IBM developerWorks的创意:
package com.crackj2ee.dao;
import java.util.List;
import org.hibernate.Query;
public class DaoSupport<T> {
private Class<T> type;
@SuppressWarnings("unchecked")
public T query(Long id) {
try {
Object obj = getSession().get(ty ...
- 进入论坛 Java 版
用户关闭直接浏览器可以用js监听到,问题是用户死机了或者网络断了则服务器根本无法知道,只能等session超时
QQ等IM由于客户一直和服务器连接,因此一断服务器就知道,而HTTP协议并不是一直和服务器连,因此才弄了一个session超时的方案
因此同一时间禁止两个用户同时登陆在网页上实现不太现实。
- 进入论坛 Java 版
我倒觉得实际用到的tree的节点都不多,更新频率非常低(像部门,栏目总不能天天改吧),完全可以一次性读到内存缓存起来,不需要特别考虑数据库读写的性能。
除非真的有成千上万的数据保存在树形结构的表中
- 进入论坛 Java 版
我想问一下:就数据库的查询效率而言,递增的int主键应该是最快的吧?是不是应该尽量用int作为主键呢?
- 进入论坛 Java 版
个人同意robbin关于异常作为一种流控制的方法,异常带给我们的好处还是多于坏处,至少使得程序更加健壮。
我设计的login总是使用自定义的异常来控制流程,我不同意在调用前检查环境比如if(!userExist())这样只会加重数据库的访问负担,另外,考虑register方法:
如果定义
if(!userExist(...)) {
if(register(...)==true) {
}
}
哈哈问题出来了:且不说访问了两次数据库,如果刚好检测了if,另一个线程了插入了相同的用户名怎么办?难道用synchronize同步?这样的话效率比使用异常还要大大的降低
个人观点,仅供参考。
- 进入论坛 Java 版







评论排行榜