我有一个为其生成日志文件的站点列表。这些日志必须通过运行各自的进程,使用ruby代码进行机器复制、解压缩、解析和分析。
有没有人能建议对所有站点的日志并行运行这些进程的最好方法?
发布于 2013-07-02 15:27:09
考虑到您的数据模型如下:
class Website
{
public List<WebSiteLog> Logs;
}使用TPL (任务并行库)的一个可能的并行解决方案是这样的:
// var sites = your sites list
var processTask = Task.Foreach(sites, site =>
{
Task.Factory.StartNew(theSite=>
{
theSite.UnzipLogs()
}.ContinueWith(unzipTask=>{
{
theSite.ParseLogs();
}.ContinueWith(parseTask=>{
{
theSite.AnalyzeLogs();
}
});
Task.WaitAll(processTask);这是一个非常初始的解决方案。在UnzipLogs、ParseLogs、AnalyzeLogs上可以使用大量的异常管理、分区甚至更多的并行化。
https://stackoverflow.com/questions/17418412
复制相似问题