2

在我的应用程序中,我有一个侧边栏(在每一页上),其中显示了一家小型公司的职位空缺列表。在 Application.cfc 中运行查询并将结果以某种方式存储在那里是否明智,或者是否有更智能的方法来运行查询并将结果存储在不同范围的其他地方?

服务器资源的最佳用途是什么?

提前致谢。

编辑:我正在使用 CF8。更新可能会每月进行一次。

4

4 回答 4

3

你有CF9吗?我将使用应用程序范围,使用 cachePut() 将查询或生成的 HTML 缓存在缓存对象中,并在需要的地方使用 cacheGet() 调用缓存对象。然后,无论您在哪里管理该信息的更新(手动 CRUD 或使用此信息的 Web 服务等),只要确保在您感知到更改时刷新该缓存对象即可。最初在 onApplicationStart() 中填充缓存对象,你应该很高兴。

于 2011-06-06T23:21:56.243 回答
2

在侧边栏调用的 cfquery 上使用 cachedwithin。

于 2011-06-07T12:59:43.807 回答
0

如果结果取决于用户会话,就会想到会话范围。应用程序范围只会在服务器(重新)启动时刷新,对吗?就资源而言,服务器在第一次请求时(应用程序范围)只加载一次结果显然更好。但同样明显的是,这些结果很快(或很快)就会变得陈旧。

如果您担心太多查询被发送到数据库,您可以考虑缓存结果。

由于您谈论的是一家小型公司,也许您应该首先重新加载每个会话的内容,然后查看数据库服务器上的负载是否失控。

于 2011-06-06T23:12:11.477 回答
0

职位空缺多久更改一次?您可以将它们存储在应用程序中,并有一个计划任务来定期重新运行查询。

于 2011-06-07T11:14:59.193 回答