Google app engine 使用APPENGINE JDO的网站点击计数器
请帮帮我 如何使用APPENGINE java JDO实现网站点击计数器…(多个用户一次点击) 我尝试了一个带有count变量的简单jdo类Google app engine 使用APPENGINE JDO的网站点击计数器,google-app-engine,jdo,Google App Engine,Jdo,请帮帮我 如何使用APPENGINE java JDO实现网站点击计数器…(多个用户一次点击) 我尝试了一个带有count变量的简单jdo类 和increment函数来增加计数器,但在多用户的情况下,计数没有按预期工作。写入更新的计数值相当慢,因此您可能会遇到竞争条件和最终的一致性问题。根据您的软件,数据存储每秒执行的写入可能不会超过一次 要添加的第一件事是扩展并发计数容量 第二件事是将计数器更新代码移动到中,以便网页响应代码不会被命中计数器代码延迟。这不是一项简单的任务。当您想要更改GAE中的
和increment函数来增加计数器,但在多用户的情况下,计数没有按预期工作。写入更新的计数值相当慢,因此您可能会遇到竞争条件和最终的一致性问题。根据您的软件,数据存储每秒执行的写入可能不会超过一次 要添加的第一件事是扩展并发计数容量
第二件事是将计数器更新代码移动到中,以便网页响应代码不会被命中计数器代码延迟。这不是一项简单的任务。当您想要更改GAE中的共享数据(计数器)时,有两个因素在起作用:
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
// here you should load the counter entity, increase it and then save it
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
当您使用碎片时,拥有事务有什么意义。事务将再次限制应用程序的可扩展性。使用碎片的唯一原因是为了避免事务。