db = new require("odbc").Database();
redis = require('redis').createClient(6379, 'someip')
# redis = require('redis').createClient(6379, '127.0.0.1')
module.exports = class ExpressServ
constructor: (@host, @port) ->
@app = require('express').createServer();
@set_routes()
db.open "DSN=MonetDB;UID=nonyo;PWD=business;DATABASE=web_requests", () ->
console.log 'db connected'
# cluster(@app).listen(@port, @host)
@app.listen(@port, @host)
process.on "uncaughtException", (exception) ->
console.error "uncaught exception: #{exception}!"
setTimeout (->
redis = require('redis').createClient(6379, '10.60.38.98')
console.log JSON.stringify(redis)
db.open "DSN=MonetDB;UID=bakerd;PWD=!rLXoM@y)yr2;DATABASE=web_requests", () ->
console.log 'monet reconnected'
), 5000
reconnect: () ->
console.log "reconnect called!"
db.open "DSN=MonetDB;UID=NONEYO;PWD=BUSINESS;DATABASE=web_requests", () ->
console.log 'monet reconnected'
redis = require('redis').createClient(6379, '10.60.38.98')
console.log "redis reconnected"
set_routes: () ->
@app.get "/apps/:app/quick-stats-day", @app_quick_stats_day
app_quick_stats_day: (req, res) ->
res.header('Connection','close')
db.query "SELECT count(*) as \"total\", avg(duration) as \"response\" FROM web_requests WHERE app_id='#{req.params.app}' and created_at>CURRENT_TIMESTAMP - INTERVAL '1' DAY", (err, result, moreResultSets) ->
if err
console.log(err)
@reconnect()
try
result[0]['response'] = "#{(eval(result[0]['response'])/1000).toFixed()}"
catch error
console.log error
result = []
data = data: result, description: "Last 24 Hours"
res.send "quickStats_day(#{JSON.stringify(data)})"