【问题标题】:Generate PDF fynamically vs store it in file system?动态生成PDF并将其存储在文件系统中?
【发布时间】:2013-11-22 04:01:37
【问题描述】:

我正在开发 PHP/MySQL 应用程序,该应用程序将创建小型 PDF 文件 - 带有一些附加文本的条形码标签,以及为客户提供的简单 1-2 页文本文档。这些 PDF 将在创建时每天访问 1-3 次,但应保持存档,以供以后访问,这将是非常罕见的,假设 500 个中的 1 个将在以后的一年中访问。

我的问题是 - 我应该将它们存储在文件系统中还是按需生成?我会考虑动态生成它们,因为在 peek 期间将生成 1000-5000 个条形码/天,而存储这些垃圾只是为了偶尔检索只会浪费服务器空间。

【问题讨论】:

  • 听起来您已经做出了正确的决定。如果您几乎不再需要它们,动态生成它们可能会更好。它还使您不必编写额外的代码来进行保存和检索。您可以像以前从未生成过一样生成 pdf。

标签: php mysql performance pdf architecture


【解决方案1】:

我的问题是 - 我应该将它们存储在文件系统中还是在 需求?

两者都做。保存它们,但要使用缓存方案,这样任何早于 - 比方说 - 1 小时的东西都会被丢弃并重新生成。这样可以减轻服务器为每个请求生成条形码的压力,但不必担心永久存储。缓存方案应该基于您的需求,但这样的设置可以让您同时平衡动态生成和文件系统的好处。

此外,如果您记录访问条码数据的次数,您可以让更受欢迎的项目缓存更长时间。

【讨论】:

  • 其实... ^这是一个更好的选择。缓存可能看起来像是一个难办的事情,但从长远来看,你将两全其美。
  • 谢谢你,杰克!这是日志分析的绝妙主意。
  • 真的吗?使用正确实施的技术从源代码生成 1 到 2 页文档到 PDF 所需的时间比在浏览器中启动 Adob​​e PDF 插件所需的时间要少。在我们对文档的系统测试中,任何少于 10-15 页的内容在屏幕上显示的速度与 1 页一样快,与从磁盘读取的相同文件一样快。
【解决方案2】:

如果它们很少被使用并且不需要很长时间来生成,那么就立即进行。

但是,如果您的用户会因为等待查看 PDF 而不是等待它们被创建而更加恼火,那么最好将它们存储起来(并且可能连同​​已经创建的 jpg 预览一起)

【讨论】:

    猜你喜欢
    • 2011-11-08
    • 2010-11-15
    • 2020-11-17
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2022-07-29
    • 2020-10-25
    相关资源
    最近更新 更多