【问题标题】:Best way to run a delayed job in browser在浏览器中运行延迟作业的最佳方法
【发布时间】:2013-12-20 01:23:00
【问题描述】:

我必须开发一个 API,它在后台执行一些 map reduce 工作,然后返回结果。它是一个带有 Riak No-sql 数据库的 sinatra 应用程序。问题是该作业需要大约 5-10 分钟才能运行。并且请求在这段时间内超时。在后台运行此类作业的最佳方法是什么?

【问题讨论】:

  • 数据集是否足够大(要分析的数据无法放入 RAM)以至于您确实需要 MapReduce,或者您是否将其用作在 Riak 中查询任意数据的一种方式?为 key/value 对数据进行适当的建模比对所有事情都依赖 MapReduce 好得多;正如您所注意到的,MapReduce 更适合批处理作业。

标签: mapreduce sinatra delayed-job riak


【解决方案1】:

DelayedJob 之类的东西在顶部有一层 Redis 之类的东西(用于跟踪作业状态),可通过唯一路由(您的 Sinatra API)访问。然后有一个不同的页面(浏览器客户端的网页)通过 AJAX 调用 API,定期轮询它。

【讨论】:

    【解决方案2】:

    你可以使用操作系统调度器

    windows task scheduler

    【讨论】:

    • 它是一个 ruby​​ 应用,在 mac 机器上运行。
    猜你喜欢
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多