2010-04-22 31 views
1

当前我在Heroku上运行Rails应用程序,并且除了生成有时包含数千条记录的PDF文档之外,所有工作都很好。 Heroku的内置超时时间为30秒,所以如果请求超过30秒,它会被放弃。通过延迟作业生成PDF,同时保留REST式样

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

所以我的基本问题是,如何在保持基本RESTful模式Rail如此便利地提供的同时,使用delayed_job创建动态生成的PDF。谢谢。

回答

3

你可以这样做:

  1. 发送请求生成的PDF:POST/generate_new_pdf
  2. 有行动它的创建
  3. 民意测验端点之前返回新的PDF格式的ID (直到返回202):GET/pdfs /:id
+1

好的答案(+1),但是有一个小错误:对POST的响应应该返回202 Accepted with the位置hea指向要轮询的资源。然后,我将返回404 GET/pdfs /:id直到PDF实际存在。 – 2010-04-23 08:15:58

+0

异步做事是一种好方法:) 也许他应该返回整个网址? – dzen 2010-04-23 16:28:16