首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式并行批处理

分布式并行批处理
EN

Stack Overflow用户
提问于 2012-05-01 16:18:33
回答 2查看 199关注 0票数 0

我正在试着找出一个问题陈述的解决方案。为了简单起见,该应用程序将是一个控制台应用程序。一个数据库包含大约10000行。我有一个开发一个c#应用程序,这将产生10个线程,每个线程将处理数据库中的5条记录。现在的问题是我将在另一台机器上运行相同的应用程序。因此,我们有两个应用程序实例,每个应用程序应该处理5000行,并且它们不应该在记录上重叠。此外,我需要有一个中央控制器,它需要显示线程ids,是运行在每个应用程序。任何解决这个问题的建议都是很棒的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 16:24:56

我将在数据库中创建一个'Processing Status‘列,每个实例将通过更改记录的状态来标记它正在处理的记录。

另一种解决方案是使用队列或Service Broker,每个实例将挑选一条消息来处理公共队列中的一条记录。在这里,您需要另一个进程来填充队列。

使用WCF在机器之间进行通信以同步工作是非常复杂和棘手的。

票数 2
EN

Stack Overflow用户

发布于 2012-05-01 17:12:14

我同意雅各布的观点。如果你想让独立的实例直接相互通信,你应该阅读两个通用问题(http://en.wikipedia.org/wiki/Two_Generals%27_Problem),并考虑如何设计一个没有竞争的非阻塞交汇点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10395230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档