2013-12-19 46 views
-1

我必须开发一个API,它可以在后台执行一些地图缩减作业,然后返回结果。它是一个带有Riak No-sql数据库的sinatra应用程序。问题是这份工作大约需要5-10分钟才能完成。请求在这段时间内超时。在后台运行这种工作的最佳方式是什么?在浏览器中运行延迟作业的最佳方式

+2

数据集是否足够大(要分析的数据不适合RAM),您真的需要MapReduce,还是使用它来查询Riak中的任意数据? 对于键/值来说,对数据进行适当建模要比对所有东西依赖MapReduce好得多;正如你所看到的,MapReduce更适合批量作业。 – macintux

回答

1

喜欢的东西DelayedJob用在上面像Redis的一个层(跟踪作业状态的),由一个唯一的途径访问(你的Sinatra API)。然后有一个不同的页面(浏览器客户端的网页)通过AJAX调用API,定期轮询它。

相关问题