当我在数据存储区中创建大量实体(大约1000个)时,我注意到一种奇怪的(?)行为。
我有一个REST方法,可以创建1000个相同类型的实体。我正在使用
datastore.put(entityObject);
创建实体。当我检查跟踪时间线时,我看到了:
这是我的实体类:
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Index;
import com.sm.task.entity.Task;
@Entity(name = "TMS.Task")
public class TaskEntity {
@Id
private String id;
private String title;
private String description;
@Index
private String status;
public Task toTask() {
return new Task(
id,
title,
description,
status);
}
public Key<TaskEntity> key() {
return Key.create(TaskEntity.class, id);
}
public static Key<TaskEntity> keyFor(String id) {
return Key.create(TaskEntity.class, id);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
我没有找到导致或控制此行为的任何设置。谁能帮助我理解这个问题的原因以及如何摆脱它?
答案 0 :(得分:0)
您不应进行1,000次put
次调用来存储1,000个实体,而应进行2次put
次调用,每次调用500个实体(只需传递要保存的实体列表)。这样更快,更有效。