如何在Rails中处理数百个顺序API

时间:2017-10-27 10:30:49

标签: ruby-on-rails ruby rest pdf

我遇到需要使用数百个API生成报告的情况。现在有些情况下API依赖于其他API。

我打算将通过rails服务处理的独立API作为后台作业进行处理。但是仍然需要等待API响应然后生成页面。

让我知道最好的方法(需要减少加载时间)

1 个答案:

答案 0 :(得分:0)

wicked_pdf只不过是一个包装器;它本质上是一个system()调用来执行wkhtmltopdf作为操作系统命令。每次执行时,它必须:1。用环境分叉一个新的shell进程,2。在shell中执行wkhtmltopdf,3。在输出中啜饮并重新呈现给Rails。这意味着它必然是同步的,而且非常低效。

最好使用prawn gem直接生成PDF,避免所有开销。如果你真的必须这样做,Rails是线程安全的,所以你可以在futures gem中使用concurrent-ruby来执行并发请求,并阻塞直到它们都完成。