【问题标题】:Generating PDF's via Delayed Job while maintaing a RESTful pattern通过延迟作业生成 PDF,同时保持 RESTful 模式
【发布时间】:2010-04-23 03:59:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby rest heroku delayed-job


    【解决方案1】:

    你可以这样做:

    1. 发送生成 pdf 的请求:POST /generate_new_pdf
    2. 让该操作在创建新 pdf 之前返回其 ID
    3. 轮询该资源 ID 的端点,直到完成(同时返回 202):GET /pdfs/:id

    【讨论】:

    • 好答案 (+1),但有一个小错误:对 POST 的响应应该返回 202 Accepted,并且位置标头指向要轮询的资源。然后我会为 GET /pdfs/:id 返回 404,直到 PDF 实际存在。
    • 异步做事是个好办法 :) 也许他应该返回整个 url ?
    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2012-10-29
    • 2016-03-29
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多