gpt4 book ai didi

google-app-engine - 针对某些请求关闭 AppEngine (Java) session

转载 作者:行者123 更新时间:2023-12-04 17:59:45 24 4
gpt4 key购买 nike

我们正在使用 sessions在我们的 GAE/J 应用程序中。周末,我们的数据存储写入出现了一个大峰值,这似乎是由创建大量 _ah_SESSION 实体(每分钟约 100-200 个)引起的。正如我们所知,有一个流氓任务队列创建了它们,因为它们在我们清除队列时停止了。该任务是 mapper 的一部分我们每小时运行一次。

我们不需要那个每小时映射器中的 session (或者实际上在我们的任何任务队列或 cron 作业或许多其他请求中)。有没有办法禁止为选定的 URL 创建 session ?

最佳答案

很遗憾,这无法完成。

当您有一个非浏览器客户端(通过 REST 或 mapreduce 作业的设备)时,每个请求都会在数据库中生成一个新的 _ah_SESSION 实体。

避免这种情况的唯一方法是编写自己的 session 处理程序:例如一个 servlet 过滤器,用于设置/检查 cookie 并将其设置为忽略某些路径。

编辑:

我刚刚意识到可能还有另一种方法:确保您的客户端(mapreduce 作业)设置一个具有适当名称的虚拟 cookie。 GAE 在生产中使用名为 ACSID 的 cookie,在开发服务器上使用名为 dev_appserver_login 的 cookie。只需始终使用相同的 cookie 值,因此所有请求都将被视为一个用户/ session 。

仍然会有查找/保存 session 对象的开销,但至少不会创建无数的_ah_SESSION实体。

关于google-app-engine - 针对某些请求关闭 AppEngine (Java) session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com