浏览 2988 次
锁定老帖子 主题:有关资源的异步操作的规整及序列问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-28
先说需求吧. 有ABCD四台机器,跑着一样的WEB程序,它们都有可能会操作一个XML文件,暂定为target.xml; 用户无论从哪台WEB进入系统,都有可能对target.xml进行写操作; 目标,无论多少个用户改,在什么时候改,从哪台机器进入的,都应该记录下所有用户的操作总和(即每个用户的修改都会体现在target.xml文件中). 初步预备的是: 再搞一台机器作为中间队列机器,里面放两个东西,一个是缓存,一个是最终需要执行的任务; 缓存中接收并规整同类的对资源的操作; 最终执行队列每几秒钟从缓存中取出规整后的操作,加入执行队列,并将缓存中的操作状态置为正在处理中(下次队列选择不会被选中); 队列扔到相应的地方去执行相应的操作; 完成后,再通知缓存该条操作执行完成,并查看在此期间有无新的操作被规整进来,有的话,更新缓存相关数据,并置为准备状态...... 感觉这样虽然可以达到目的,不过思想比较乱,还请一下下呀. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-28
有ABCD四台机器,跑着一样的WEB程序,它们都有可能会操作一个XML文件...
-------- 这个XML文件放在那里的? |
|
返回顶楼 | |
发表时间:2007-05-29
MiMiEye 写道 不知道这样写标题会不会让大家误解,实在是不好一句话描述清楚问题.
先说需求吧. 有ABCD四台机器,跑着一样的WEB程序,它们都有可能会操作一个XML文件,暂定为target.xml; 用户无论从哪台WEB进入系统,都有可能对target.xml进行写操作; 目标,无论多少个用户改,在什么时候改,从哪台机器进入的,都应该记录下所有用户的操作总和(即每个用户的修改都会体现在target.xml文件中). 初步预备的是: 再搞一台机器作为中间队列机器,里面放两个东西,一个是缓存,一个是最终需要执行的任务; 缓存中接收并规整同类的对资源的操作; 最终执行队列每几秒钟从缓存中取出规整后的操作,加入执行队列,并将缓存中的操作状态置为正在处理中(下次队列选择不会被选中); 队列扔到相应的地方去执行相应的操作; 完成后,再通知缓存该条操作执行完成,并查看在此期间有无新的操作被规整进来,有的话,更新缓存相关数据,并置为准备状态...... 感觉这样虽然可以达到目的,不过思想比较乱,还请一下下呀. 描述已经是比较清晰了,而在这里主要需要解决的就是资源共享操作的问题,LZ最好能先把用例写出来,建议以文本的形式来写,那样会更加清晰。 |
|
返回顶楼 | |
发表时间:2007-05-29
如果只加不减简单,
如果有改动,脏读怎么必免? 如果有删除,。。。。 如果有下载。。。。。 如果有上传。。。。 异常如何处理。 死机后缓存规则。 这就是需求扩张 |
|
返回顶楼 | |
发表时间:2007-05-29
采用悲观锁,设计一套类似 VSS 的check-out/check-out 机制,访问此XML的应用都遵循此规则就可以了。
|
|
返回顶楼 | |
发表时间:2007-05-30
vss不可以并发修改
|
|
返回顶楼 | |
发表时间:2007-05-30
lz做的东西现在也没有并发
|
|
返回顶楼 | |
发表时间:2007-05-30
wunan320 写道 vss不可以并发修改
就是要避免并发修改啊,否则如何保证修改的有效性呢? |
|
返回顶楼 | |
发表时间:2007-06-11
vss模拟应该不错
|
|
返回顶楼 | |