1
我正在使用mapreduce,並且當它們不在數據存儲中時,我需要堅持一些實體。我將新實體添加到DatastoreMutationPool,因此這些實體可以通過批處理調用持續保存。當mapreduce結束時,調用一個回調函數。回調函數將使用其中一些實體。我的問題是,在調用回調函數之前,它們的所有實體是否都會刷新到數據存儲區,或者它們仍然可以位於DatastoreMutationPool中,但不在數據存儲區中。DatastoreMutationPool在回調之前刷新到數據存儲區?
謝謝。映射器的
實施例:
public class MyMapper extends AppEngineMapper<Key, Entity, NullWritable, NullWritable> {
@Override
public void map(Key key, Entity value, Context context) {
...
DatastoreMutationPool mutationPool = this.getAppEngineContext(context).getMutationPool();
mutationPool.put(entity);
}
}
回調的實施例:
@RequestMapping(value="/callback/function",method=RequestMethod.POST)
public void callback(@RequestParam("job_id") String jobIdName){
JobID jobId = JobID.forName(jobIdName);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
//search for some entities persisted in the mapper
...
}