1
数据
咱们例如说我有以下的客观化模式:使用物化同时写上GAE
@Cache
@Entity
public class CompanyViews implements Serializable, Persistence {
@Id
private Long id;
private Date created;
private Date modified;
private Long companyId;
........
private Integer counter;
........
@Override
public void persist() {
persist(false);
}
@Override
public void persist(Boolean async) {
ObjectifyService.register(Feedback.class);
// setup some variables
setUuid(UUID.randomUUID().toString().toUpperCase());
setModified(new Date());
if (getCreated() == null) {
setCreated(new Date());
}
// do the persist
if (async) {
ofy().save().entity(this);
} else {
ofy().save().entity(this).now();
}
}
}
我想用计数器字段来跟踪的若干意见,或号码打开或基本算什么使用整数字段。
什么,现在的情况是,对于一个GAE例如,以下将被称为:
答:
CompanyViews views = CompanyViews.findByCompanyId(...);
views.setCounter(views.getCounter() + 1);
views.persist();
和另一个实例:
B:
CompanyViews views = CompanyViews.findByCompanyId(...);
views.setCounter(views.getCounter() + 1);
views.persist();
如果他们在同一时间读取计数器或在另一个实例之前读取计数器他们会坚持下去,他们会相互覆盖。
在MySQL/Postgres中获得行级锁定,如何为GAE上的Objectify实体执行“行级锁定”?
感谢Peter,我想最好是每天插入一个新条目并计算一次统计信息,然后将其放入一个事务中。 –