app.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. local _M = {}
  2. local cjson = require "cjson"
  3. local mysql = require "resty.mysql"
  4. local math = require "math"
  5. local encode = cjson.encode
  6. local random = math.random
  7. local insert = table.insert
  8. function _M.handler(ngx)
  9. ngx.header.content_type = 'application/json'
  10. if ngx.var.uri == '/json' then
  11. local resp = {message = "Hello, World!"}
  12. ngx.print( encode(resp) )
  13. elseif ngx.var.uri == '/db' then
  14. local mysqlconn = {
  15. host = "DBHOSTNAME",
  16. port = 3306,
  17. database = "hello_world",
  18. user = "benchmarkdbuser",
  19. password = "benchmarkdbpass"
  20. }
  21. local db, err = mysql:new()
  22. local ok, err = db:connect(mysqlconn)
  23. local num_queries = tonumber(ngx.var.arg_queries) or 1
  24. local worlds = {}
  25. for i=1, num_queries do
  26. local wid = random(1, 10000)
  27. insert(worlds, db:query('SELECT * FROM World WHERE id = '..wid)[1])
  28. end
  29. ngx.print( encode(worlds) )
  30. local ok, err = db:set_keepalive(0, 256)
  31. elseif ngx.var.uri == '/plaintext' then
  32. ngx.header.content_type = 'text/plain'
  33. ngx.print('Hello, World!')
  34. end
  35. end
  36. return _M