论坛首页 综合技术论坛

B/S模式大批量数据处理方式

浏览 13785 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-23  
类似于楼主这样大量数据的批处理,在业务时间外选个固定时间操作来得比较靠谱一点。
这样也不会影响到其他用户的操作了。

3个小时的批量操作,这个数据量得多少呢~~~~~
0 请登录后投票
   发表时间:2010-06-23   最后修改:2010-06-23
Frankie199 写道
   我们在开发企业B/S模式MIS系统时候,总是会遇到需要执行存储过程的要求。对于大批量数据的处理一般设计都会放到存储过程中操作。那就存在一个问题,如界面有一个按钮是执行一个存储过程,这个过程相当费时,一般都在3个小时以上。对于这种处理,现在都是开单独开一个线程,界面直接返回信息,后台让他自己运行,这样不影响前台业务经办。但是用户发现点击后去查询执行结果,发现无数据,又再次点击,这样就再次执行过程引起数据错误。
   我现在的操作方式是点击按钮后就使用一张表记录状态,过程执行完成后再修改状态使得前台按钮可用。
   不知道大家还有什么方法没有?

在运行前检查v$access里的纪录看看存储过程 是否被运行.
如果被运行则返回异常页面.

不要忘记加事务commit
0 请登录后投票
   发表时间:2010-06-23  
   我也一直在考虑把这种处理放到后台运行或者直接让系统管理员来做,但是这个有时候涉及到工作职责划分,我们都是政府系统,呵呵,做的越多责任越大,都想少做。
   “抛出异常的爱”提的方法不错,比我的那个好
0 请登录后投票
   发表时间:2010-06-23  
jasonling168 写道
Frankie199 写道
   如界面有一个按钮是执行一个存储过程,这个过程相当费时,一般都在3个小时以上。[size=x-small][/size]


不知道你的什么按钮操作有这么大的数据量,3个小时的DB处理时间,很恐怖了。这种只有在后台异步做了。
但是我总感觉如果client端的一个button的处理数据量如此之大是不是设计上就有缺陷呢?
不知道能否提供详细一点的信息,比如你的那个button是要完成什么功能之类的,然后后台做了什么,或许从设计上优化会好一点。


处理时间那么长,要根据项目的实际情况,可以考虑定时处理,生成静态文件。。
0 请登录后投票
   发表时间:2010-06-24  
还是数据库里记录执行状态(待执行、执行中、完毕/错误)比较合理。
0 请登录后投票
   发表时间:2010-06-26  
算是一个任务,可以给个状态,处理中。。。
0 请登录后投票
   发表时间:2010-06-26  
zgsheng 写道
挂个网页游戏吧,俄罗斯方块,用户点击按钮后进入游戏,系统后台运行完成后结束游戏......

javaeye就是需要你这样有幽默感的
0 请登录后投票
   发表时间:2010-06-28  
zgsheng 写道
挂个网页游戏吧,俄罗斯方块,用户点击按钮后进入游戏,系统后台运行完成后结束游戏......

good idea!
0 请登录后投票
   发表时间:2010-06-28  
zgsheng 写道
挂个网页游戏吧,俄罗斯方块,用户点击按钮后进入游戏,系统后台运行完成后结束游戏......

这个要支持
0 请登录后投票
   发表时间:2010-06-29  
操作需要做三个小时?

那就想其他办法,不要搞实时的啦
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics