Browse Source

"updates" test for ringojs-raw

Simon Oberhammer 12 years ago
parent
commit
85e9a31e17
2 changed files with 31 additions and 0 deletions
  1. 1 0
      ringojs/benchmark_config
  2. 30 0
      ringojs/ringo-main.js

+ 1 - 0
ringojs/benchmark_config

@@ -13,6 +13,7 @@
       "db_url": "/db",
       "query_url": "/db?queries=",
       "fortune_url": "/fortune",
+      "update_url": "/updates?queries="
       "port": 8080,
       "sort": 74
     }

+ 30 - 0
ringojs/ringo-main.js

@@ -85,6 +85,36 @@ exports.app = function(req) {
         headers: {"Content-Type": 'text/plain'},
         body: ['Hello World']
       };
+   } else if (path === '/updates') {
+      var queryCount = parseInt(req.env.servletRequest.getParameter('queries'), 10);
+      if (isNaN(queryCount) || queryCount < 1) {
+         queryCount = 1;
+      } else if (queryCount > 500) {
+         queryCount = 500;
+      }
+      try {
+         var connection = datasource.getConnection();
+         var body = [];
+         for (var i = 0; i < queryCount; i++) {
+            let randId = ((Math.random() * 10000) | 0) + 1;
+            world = sql.query(connection, 'select * from World where World.id = ' + randId)[0];
+            world.randomNumber = ((Math.random() * 10000) | 0) + 1;
+            sql.execute(connection, 'UPDATE World SET randomNumber = ' + world.randomNumber + ' WHERE id = ' + world.id);
+            body.push(world);
+         }
+      } catch (e) {
+         connection.close();
+         connection = null;
+      } finally {
+         if (connection !== null) {
+            connection.close();
+         }
+      }
+      return {
+         status: 200,
+         headers: {"Content-Type": "application/json; charset=UTF-8"},
+         body: [JSON.stringify(body)]
+      }
    }
 };