1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package controllers;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.ThreadLocalRandom;
- import models.World;
- import play.jobs.Job;
- import play.mvc.Controller;
- public class Application extends Controller {
- private static final int TEST_DATABASE_ROWS = 10000;
- public static void index() {
- render();
- }
- public static void json() {
- Map<String, String> result = new HashMap<String, String>();
- result.put("message", "Hello, World!");
- renderJSON(result);
- }
- public static void setup() {
-
- //JPAPlugin plugin = play.Play.plugin(JPAPlugin.class);
- //plugin.startTx(true);
- World w = new World() ;
- w.getPersistenceManager().beginTransaction();
- // clean out the old
- World.deleteAll();
- System.out.println("DELETED");
- // in with the new
- List<World> worlds = new ArrayList<World>() ;
- for (long i = 0; i <= TEST_DATABASE_ROWS; i++) {
- int randomNumber = ThreadLocalRandom.current().nextInt(TEST_DATABASE_ROWS) + 1;
- worlds.add(new World(i, randomNumber));
- if (i % 100 == 0) {
-
- World.batch().insert(worlds) ;
- System.out.println("FLUSHED : " + i + "/" + TEST_DATABASE_ROWS);
- worlds.clear() ;
- }
- }
- System.out.println("ADDED");
- //plugin.closeTx(false);
- w.getPersistenceManager().commitTransaction();
- }
- public static void db(int queries) throws InterruptedException,
- ExecutionException {
- if (queries == 0)
- queries = 1;
- final int queryCount = queries;
- final List<World> worlds = new ArrayList<World>();
- Job<List<World>> job = new Job<List<World>>() {
- public java.util.List<World> doJobWithResult() throws Exception {
- for (int i = 0; i < queryCount; ++i) {
- Long id = Long
- .valueOf(ThreadLocalRandom.current().nextInt(TEST_DATABASE_ROWS) + 1);
- World result = World.findById(id);
- worlds.add(result);
- }
- return worlds;
- };
- };
- List<World> result = job.now().get();
- renderJSON(result);
- }
- public static void dbSync(int queries) {
- if (queries == 0)
- queries = 1;
- final List<World> worlds = new ArrayList<World>();
- for (int i = 0; i < queries; ++i) {
- Long id = Long.valueOf(ThreadLocalRandom.current().nextInt(TEST_DATABASE_ROWS) + 1);
- World result = World.findById(id);
- worlds.add(result);
- }
- renderJSON(worlds);
- }
- }
|