这可能不适合在这里,如果是这样,请随时移动,呼喊或滥用。处理许多任务,多次与任务并行
我们目前有一个控制台应用程序,由另一个开始并传入一个“作业”ID,这个作业将有多个需要处理的记录。流程的简单解释是;
Starts 50 threads
Gets records to be processed.
if records > 0 see what threads are not still busy and send it some information.
if records = 0 update something else and exit.
Get more records.
Loop.
现在,我正在寻找转换成一个'轮询'服务,不断运行,当新记录可用,处理它们。采取我拥有的东西并将其转换成相当简单,但线程的东西是旧的,可能过时了。
我正在寻找重构大部分,如果不是全部,并使用Task.Parallel来处理项目。然而,我正在努力争取一个合适的轮询框架,然后处理这些项目,并正在寻求如何实现这一目标的建议。
我非常模糊,但希望能给出某种意见。
非常感谢
你能描述这些记录来自哪里吗?他们被添加到数据库? – 2012-04-25 14:06:24
目前他们是名单,但是他们最终来自DB。它们分批加载并发送到线程池。一旦在该批次中没有剩下可处理的东西,我们会检查更多。 –
ChrisBint
2012-04-25 14:08:37
这是说话的sql服务器? – 2012-04-25 14:10:50