Ruby on rails Schmooze::进程失败+;使用grover gem转换html2pdf时
我需要将我的html页面转换为pdf。但是我得到一个“schmooze进程失败”,当它执行grover.to_pdf时,系统挂起。它在终端上运行良好,但在我的rails项目中不起作用。听起来您的系统好像挂起了,因为默认情况下,在开发模式下运行rails时,您只运行了一个线程 当您在请求内部并尝试点击Ruby on rails Schmooze::进程失败+;使用grover gem转换html2pdf时,ruby-on-rails,pdf,pdf-generation,puppeteer,grover,Ruby On Rails,Pdf,Pdf Generation,Puppeteer,Grover,我需要将我的html页面转换为pdf。但是我得到一个“schmooze进程失败”,当它执行grover.to_pdf时,系统挂起。它在终端上运行良好,但在我的rails项目中不起作用。听起来您的系统好像挂起了,因为默认情况下,在开发模式下运行rails时,您只运行了一个线程 当您在请求内部并尝试点击生成报告端点时,您正在排队等待请求的响应,但是由于Rails一次只能服务一个请求,因此响应永远不会出现,因此请求永远不会完成,从而导致死锁 通过填充模板或调用ActionController.rend
生成报告
端点时,您正在排队等待请求的响应,但是由于Rails一次只能服务一个请求,因此响应永远不会出现,因此请求永远不会完成,从而导致死锁
通过填充模板或调用ActionController.render()
并使用该模板,尝试在不发出web请求的情况下获取报表的HTML
如果这不是您的选项,请将Rails服务器配置为在开发模式下使用多线程(我建议您在开发模式下使用Puma,或任何生产模式下使用的线程)。我将尝试第一个选项,因为选项2-我已经在开发模式下使用Puma。请参阅:Puma在单模式下启动…*版本4.3.1(ruby 2.6.4-p104),代码名:神秘旅行者*最小线程数:5,最大线程数:5*环境:开发
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