我遇到需要使用数百个API生成报告的情况。现在有些情况下API依赖于其他API。
我打算将通过rails服务处理的独立API作为后台作业进行处理。但是仍然需要等待API响应然后生成页面。
让我知道最好的方法(需要减少加载时间)
答案 0 :(得分:0)
wicked_pdf只不过是一个包装器;它本质上是一个system()
调用来执行wkhtmltopdf
作为操作系统命令。每次执行时,它必须:1。用环境分叉一个新的shell进程,2。在shell中执行wkhtmltopdf
,3。在输出中啜饮并重新呈现给Rails。这意味着它必然是同步的,而且非常低效。
最好使用prawn
gem直接生成PDF,避免所有开销。如果你真的必须这样做,Rails是线程安全的,所以你可以在futures
gem中使用concurrent-ruby
来执行并发请求,并阻塞直到它们都完成。