Skip to content

Instantly share code, notes, and snippets.

@sinmetal
Created July 8, 2015 05:10
Show Gist options
  • Save sinmetal/a80e23a8ac9fcf3df08c to your computer and use it in GitHub Desktop.
Save sinmetal/a80e23a8ac9fcf3df08c to your computer and use it in GitHub Desktop.
package org.sinmetal.controller;
import java.io.*;
import java.util.*;
import java.util.logging.*;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
import org.sinmetal.meta.*;
import org.sinmetal.model.*;
import org.slim3.controller.*;
import org.slim3.datastore.*;
import com.google.appengine.api.datastore.*;
public class QueryAsyncController extends SimpleController {
Logger logger = Logger
.getLogger(QueryAsyncController.class.getSimpleName());
TweetMeta meta = TweetMeta.get();
@Override
protected Navigation run() throws Exception {
Iterator<Key> iterator1 = Datastore.query(meta)
.sort(meta.createdAt.desc).limit(100).asKeyIterator();
Iterator<Key> iterator2 = Datastore.query(meta).limit(100)
.asKeyIterator();
Iterator<Key> iterator3 = Datastore.query(meta).limit(100)
.asKeyIterator();
Iterator<Key> iterator4 = Datastore.query(meta).limit(100)
.sort(meta.key.asc).asKeyIterator();
Iterator<Key> iterator5 = Datastore.query(meta).limit(100)
.sort(meta.key.asc).asKeyIterator();
writeResponse(iterator1);
writeResponse(iterator2);
writeResponse(iterator3);
writeResponse(iterator4);
writeResponse(iterator5);
return null;
}
void writeResponse(Iterator<Key> iterator) throws JsonGenerationException,
JsonMappingException, IOException {
List<Key> keys = new ArrayList<Key>();
while (iterator.hasNext()) {
keys.add(iterator.next());
}
List<Tweet> list = Datastore.get(meta, keys);
logger.info(String.valueOf(list.size()));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment