respond_to do |format|
format.html
format.pdf do
grover = Grover.new('http://localhost:3000/generate_report', format: 'A4')
pdf = grover.to_pdf
File.open(Rails.root.join('report.pdf'),'wb', encoding: 'ascii-8bit') { |f| f.write(pdf)}
end
end
我需要将 html 页面转换为 pdf。但我收到“schmooze 进程失败”消息,并且在执行 grover.to_pdf 时系统挂起。它在终端上运行良好,但在我的 Rails 项目中运行不佳。
听起来你的系统挂起了,因为默认情况下在开发模式下运行 Rails 时,你只运行 1 个线程。
当您在您的请求范围内并尝试点击generate_report
在端点上,您正在对请求进行排队并等待其响应,但是由于 Rails 一次只能处理一个请求,因此响应永远不会到来,因此请求永远不会完成,从而导致死锁。
尝试通过填充模板或调用来获取报告的 HTML,而不发出 Web 请求ActionController.render()
并用它来代替。
如果这不适合您,请将 Rails 服务器配置为在开发模式下使用多线程(我建议您在开发模式下使用 Puma,或任何生产用途)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)