Browse Source

Merge pull request #168 from bakins/luaoptimizations

Lua optimizations
Patrick Falls 12 years ago
parent
commit
0e132ff811
2 changed files with 34 additions and 22 deletions
  1. 32 21
      openresty/app.lua
  2. 2 1
      openresty/nginx.conf

+ 32 - 21
openresty/app.lua

@@ -1,30 +1,41 @@
+local _M = {}
+
 local cjson = require "cjson"
 local mysql = require "resty.mysql"
 local math = require "math"
 
-local mysqlconn = {
-    host = "DBHOSTNAME",
-    port = 3306,
-    database = "hello_world",
-    user = "benchmarkdbuser",
-    password = "benchmarkdbpass"
-}
+local encode = cjson.encode
+local random = math.random
+local insert = table.insert
+
 
-ngx.header.content_type = 'application/json'
+function _M.handler(ngx)
+    ngx.header.content_type = 'application/json'
+    
+    if ngx.var.uri == '/json' then
+        local resp = {message = "Hello, World!"}
+        ngx.print( encode(resp) )
+    elseif ngx.var.uri == '/db' then
 
-if ngx.var.uri == '/json' then
-    local resp = {message = "Hello, World!"}
-    ngx.print( cjson.encode(resp) )
+        local mysqlconn = {
+            host = "DBHOSTNAME",
+            port = 3306,
+            database = "hello_world",
+            user = "benchmarkdbuser",
+            password = "benchmarkdbpass"
+        }
 
-elseif ngx.var.uri == '/db' then
-    local db, err = mysql:new()
-    local ok, err = db:connect(mysqlconn)
-    local num_queries = tonumber(ngx.req.get_uri_args()["queries"]) or 1
-    local worlds = {}
-    for i=1, num_queries do
-        local wid = math.random(1, 10000)
-        table.insert(worlds, db:query('SELECT * FROM World WHERE id = '..wid)[1])
+        local db, err = mysql:new()
+        local ok, err = db:connect(mysqlconn)
+        local num_queries = tonumber(ngx.var.arg_queries) or 1
+        local worlds = {}
+        for i=1, num_queries do
+            local wid = random(1, 10000)
+            insert(worlds, db:query('SELECT * FROM World WHERE id = '..wid)[1])
+        end
+        ngx.print( encode(worlds) )
+        local ok, err = db:set_keepalive(0, 256)
     end
-    ngx.print( cjson.encode(worlds) )
-    local ok, err = db:set_keepalive(0, 256)
 end
+
+return _M

+ 2 - 1
openresty/nginx.conf

@@ -8,10 +8,11 @@ events {
 
 http {
     access_log off;
+    lua_package_path 'CWD/openresty/?.lua;;';	
     server {
         listen       8080;
         location / {
-            content_by_lua_file 'CWD/openresty/app.lua';
+            content_by_lua 'require("app").handler(ngx)';
         }
     }
 }