【发布时间】:2011-08-12 18:14:06
【问题描述】:
我正在使用 Google App engine Mapper API 来删除我的 GAE 数据存储中特定实体的所有行(大约 2M)。但是,即使我有一个计费帐户,我仍然会得到 -
com.google.appengine.tools.mapreduce.MapReduceServlet processMapper: 超出映射器配额。中止请求,直到配额被补充。 考虑增加 mapreduce.mapper.inputprocessingrate(默认 1000) 如果您希望更快地完成映射工作。
如何专门增加映射器配额?我需要紧急删除记录,但找不到任何文件来增加映射器配额。如果还有其他我应该知道的最佳实践,请告诉我。
这就是我在映射器类中所做的。
public void map(Key key, Entity value, Context context) {
log.info("Mapping key: " + key);
if (value.hasProperty("email")) {
String email = (String) value.getProperty("email");
if(email.equalsIgnoreCase("xxxx@xxxxx.com")) {
DatastoreMutationPool mutationPool = this.getAppEngineContext(context).getMutationPool();
mutationPool.delete(key);
}
}
【问题讨论】:
-
您是否在映射器函数中产生删除操作?或者只是打电话给
db.delete()? -
也许更新帖子以避免混乱......提示4x空格=代码格式。
-
好的 - 更新了原帖。
标签: google-app-engine mapreduce