Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jan 20th, 2012  |  syntax: CoffeeScript  |  size: 1.82 KB  |  hits: 103  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. db = new require("odbc").Database();
  2. redis = require('redis').createClient(6379, 'someip')
  3. # redis = require('redis').createClient(6379, '127.0.0.1')
  4.  
  5. module.exports = class ExpressServ
  6.  
  7.   constructor: (@host, @port) ->
  8.     @app = require('express').createServer();
  9.     @set_routes()
  10.     db.open "DSN=MonetDB;UID=nonyo;PWD=business;DATABASE=web_requests", () ->
  11.       console.log 'db connected'
  12.     # cluster(@app).listen(@port, @host)
  13.     @app.listen(@port, @host)
  14.     process.on "uncaughtException", (exception) ->
  15.       console.error "uncaught exception: #{exception}!"
  16.       setTimeout (->
  17.         redis = require('redis').createClient(6379, '10.60.38.98')
  18.         console.log JSON.stringify(redis)
  19.         db.open "DSN=MonetDB;UID=bakerd;PWD=!rLXoM@y)yr2;DATABASE=web_requests", () ->
  20.           console.log 'monet reconnected'
  21.         ), 5000
  22.  
  23.  
  24.   reconnect: () ->
  25.     console.log "reconnect called!"
  26.     db.open "DSN=MonetDB;UID=NONEYO;PWD=BUSINESS;DATABASE=web_requests", () ->
  27.       console.log 'monet reconnected'
  28.     redis = require('redis').createClient(6379, '10.60.38.98')
  29.     console.log "redis reconnected"
  30.  
  31.   set_routes: () ->
  32.     @app.get "/apps/:app/quick-stats-day", @app_quick_stats_day
  33.  
  34.   app_quick_stats_day: (req, res) ->
  35.     res.header('Connection','close')
  36.     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) ->
  37.       if err
  38.         console.log(err)
  39.         @reconnect()
  40.       try
  41.         result[0]['response'] = "#{(eval(result[0]['response'])/1000).toFixed()}"
  42.       catch error
  43.         console.log error
  44.         result = []
  45.       data = data: result, description: "Last 24 Hours"
  46.       res.send "quickStats_day(#{JSON.stringify(data)})"