首页新闻找找看学习计划

两个进程间的数据共享问题

0
悬赏园豆:40 [待解决问题]

问题是这样的,有两个进程(或者更多的进程),启动的时候都从同一个文件读取数据,在各自的进程中建立对象模型。这两个进程还都可以修改数据。那么,问题来了,如果进程A修改了数据,进程B要适时的获得修改后的数据,应该采用什么样的解决方案来实现呢?
因为程序的基础通信架构采用的是WCF,考虑过使用WCF进行通信来同步两个进程间的数据,但设计到的数据维度比较多,如果每一个属性的修改都需要来一次通信的话,这样肯定对性能就会产生很大的影响了。不知道,各位大神是否有更好的方案,烦请赐教!!!谢谢!!!

光脚丫思考的主页 光脚丫思考 | 初学一级 | 园豆:162
提问于:2014-11-27 10:36
< >
分享
所有回答(4)
0

你需要数据库..或者内存缓存

吴瑞祥 | 园豆:28731 (高人七级) | 2014-11-27 10:48
0

适时是怎么个适时法?

数据修改的频率有多高?

爱编程的大叔 | 园豆:29818 (高人七级) | 2014-11-27 10:50

最大容忍度不超过3秒钟。

支持(0) 反对(0) 光脚丫思考 | 园豆:162 (初学一级) | 2014-11-27 11:29
0

1.修改完成后分发

2.如果数据量大。通知数据已经修改(置标志),在需要这部分数据的时候再去主动索取数据(并置标志)

Sheepherder | 园豆:215 (菜鸟二级) | 2014-11-27 11:16

问题在于,修改完成这个时机的问题。比如模型中有50个属性,每个属性都可能会被修改。50个属性都来触发分发的操作吗?

支持(0) 反对(0) 光脚丫思考 | 园豆:162 (初学一级) | 2014-11-27 11:31

@光脚丫思考: 这样肯定不合适,是不是可以每个属性修改后将修改的属性打入准备分发集合,对这个集合做分发,这个分发操作用延时来处理,在延时的过程中可以继续对这个集合增加,这样是不是即兼容了分发的性能也同时对这个延时时间长短控制照顾到了“实时性”

支持(0) 反对(0) Sheepherder | 园豆:215 (菜鸟二级) | 2014-11-28 10:55
0

问题复述一下, 看是否理解正确: 1.  进程之间通信共享的数据存储在哪里? 文件? 数据库? 还是从初始文件读取并转化后的对象数据? 2. 进程 A 修改了数据后, 进程B 必须在 3s 内获取修改后的数据么? 反之亦然?  我不太熟悉 WCF, 或许可以考虑下观察者模式。为进程 A 和 进程 B 的数据模型分别建立内存结构作为被观察对象, A,B 作为观察者。 当A(B)数据模型发生变化时通知 进程B(A) 

琴水玉 | 园豆:303 (菜鸟二级) | 2014-12-01 22:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册