java技术研究

统计

留言簿(3)

阅读排行榜

评论排行榜

quartz多个线程同时处理一条记录的问题。

因为当save时,会出错就表示锁了。
比如下面的方法,要catch一下,如果保存报错,就表示另一个线程保存的时候锁住了。
public List<MailQueue> updateStatusAndFindMailList(int numOfEmailsPerTime) {
List<MailQueue> list = this.mailQueueDao.findMailListAndLock(numOfEmailsPerTime);
for(MailQueue mailQueue:list){
try{
mailQueue.setSendStatus(MailQueue.STATUS_SENDING);
this.saveOrUpdate(mailQueue);
}catch(Exception e){
//如果保存失败,表示是给另一个线程保存了。
list.remove(mailQueue);
}
}
return list;
}

posted on 2012-04-12 13:18 小秦 阅读(527) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: