JiveJdon Community Forums
在线523人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 项目工程开发经验谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 2 回复 / 1
 发表新帖子   回复该主题贴
hulty

悄悄话
发表文章: 3
注册时间: 2007年07月11日 15:08
这种情况应该如何修改设计? 2008年03月06日 16:37 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 架构(101)     
近来在做一个模块,用的是一个如下的大概流程:
涉及的主要类:
Task 任务类--自定义
Container 存储的容器类--自定义
外部程序调用我做的模块接口传给我一个String字符串;我将这个字符串解析、封装成一个任务Task,然后将这个任务Task加入Container容器中。后台会启动多个线程去容器Container中搜索任务,然后将任务拿出来处理掉。

现在在实际应用中出现这样一个问题,即外部调用程序给我的任务很多很急,然后所有的任务Task都往容器Container中扔。后台从容器中检出任务并处理掉的线程来不及很快的处理完容器Container中已有的任务,结果导致Container中的东西越来越多,最后出现 OutOfMemory的问题。
各位大侠,如何处理这个问题啊,应该在什么地方加入什么机制来解决这个问题,希望大家多给我出几个主意。
比较头疼,先谢谢大家!
ghostv1

悄悄话
发表文章: 34
注册时间: 2007年08月29日 16:06
re:这种情况应该如何修改设计? 2008年03月13日 12:17 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
可以将Container做Task数量限制,新加入的Task字符如果超出数量限制,先不要解析为Task,而是放到一个队列中保存。当Container中Task数量减少的时候,就可以从队列中取出Task字符,解析为Task,并添加到Container中
killer

悄悄话
发表文章: 106
注册时间: 2007年07月17日 15:40
re:这种情况应该如何修改设计? 2008年03月24日 09:19 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
这种情况你可能需要将你的Task持久化,Container容器可以只缓存一部分先进来的Task。当后台程序处理掉Container中的任务时再唤醒一些持久化的Task。
这个主题有 2 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam