我注意到if ($user->wasRecentlyCreated) {
// new user
} else {
// user already exists
}
的{{1}}属性已编入索引。查询过期的会话时,这肯定会很方便。但这似乎有一个缺点。 _expires
属性包含单调递增的值。这意味着此属性的索引记录很可能最终出现在单个平板电脑服务器上。我担心这种平板电脑服务器很容易被经常更新会话数据的应用程序重载。有没有办法告诉App Engine不要索引_ah_SESSION
属性?也许就像向_expires
添加规则一样,例如:
_expires
据我所知,回答我的问题是“不”。我正在考虑提交功能请求。但也许我错过了一些东西。非常感谢您的意见。
更新1:我已为此提交了功能请求。请考虑通过“主演”给它投票:https://issuetracker.google.com/issues/71583968
更新2 :Google已注意到该功能请求,并且“目前正在调查解决方案”。在问题跟踪器讨论中,有一篇帖子说可能可以阻止appengine-web.xml
属性通过<session-index-expiration>false</session-index-expiration>
配置文件编制索引。但是,由于此文件似乎只处理声明自定义索引,我无法看到如何使用它来禁用单个属性索引。有什么想法吗?
_expires
个实体会被自动重写,这有点普遍存在。但是这是错误的。根据实际implementation of SessionManager,仅当会话至少25%到期时才会强制执行此类重写。这显着降低了索引datastore-indexes.xml
属性导致争用的风险。至少对于主要使用会话来跟踪登录/注销用户的应用程序。