Ruby 生成PDF';在保持RESTful模式的同时,通过延迟作业

Ruby 生成PDF';在保持RESTful模式的同时,通过延迟作业,ruby,rest,heroku,delayed-job,Ruby,Rest,Heroku,Delayed Job,目前我正在Heroku上运行Rails应用程序,除了生成有时包含数千条记录的PDF文档外,一切都很好。Heroku有一个内置的30秒超时,因此如果请求超过30秒,它将被放弃 那很好,因为他们提供内置的工作支持。然而,我生成的所有PDF都遵循典型的restful模式。例如,对“/posts.pdf”的请求会生成一个pdf(使用PRAWN和PRAWNTO),并将其发送到浏览器 因此,我的基本问题是,如何在维护Rail提供的基本RESTful模式的同时,创建带有延迟任务的动态生成PDF。谢谢。您可以执

目前我正在Heroku上运行Rails应用程序,除了生成有时包含数千条记录的PDF文档外,一切都很好。Heroku有一个内置的30秒超时,因此如果请求超过30秒,它将被放弃

那很好,因为他们提供内置的工作支持。然而,我生成的所有PDF都遵循典型的restful模式。例如,对“/posts.pdf”的请求会生成一个pdf(使用PRAWN和PRAWNTO),并将其发送到浏览器


因此,我的基本问题是,如何在维护Rail提供的基本RESTful模式的同时,创建带有延迟任务的动态生成PDF。谢谢。

您可以执行以下操作:

  • 发送生成pdf的请求:POST/generate\u new\u pdf
  • 让该操作在创建新pdf之前返回其ID
  • 轮询该资源ID的端点,直到完成为止(同时返回202):GET/pdfs/:ID

  • 回答很好(+1),但有一个小错误:对POST的响应应该返回202 Accepted,位置头指向要轮询的资源。然后,我将返回404 for GET/pdfs/:id,直到PDF实际存在。异步执行操作是一种好方法:)也许他应该返回整个url?