Skip to content

Commit

Permalink
optimized active config and activate method
Browse files Browse the repository at this point in the history
closes #3
  • Loading branch information
M. Peter committed Jul 15, 2016
1 parent 045d42f commit dd8cc95
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 16 deletions.
57 changes: 44 additions & 13 deletions _src/logger.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,16 @@ class NsqLogger extends require( "./basic" )
if not _topicsInst?
_topicsInst = new Topics( @config )
return _topicsInst

@_start()
return

_start: =>
if @ready
return

if not @active()
return

@Topics.filter ( testT )=>
if not @nsTest( testT )
return false
Expand Down Expand Up @@ -90,28 +92,43 @@ class NsqLogger extends require( "./basic" )
@Topics.on "remove", @removeReader

@ready = true
@connected = true
@emit( "ready" )
return


return

connect: =>
if not @config.active
return

@Writer.connect()
@Topics.activate()

@_start()
return @

disconnect: =>
@connected = false
@ready = false
@Topics.deactivate()
@Topics.removeListener( "add", @addReader )
@Topics.removeListener( "remove", @addReader )
@_destroyReaders =>
@emit( "disconnected" )
return
return

destroy: ( cb )=>
@warning "destroy logger"
if not @ready
return

_count = Object.keys( @READERS ).length

@Topics.deactivate()
@disconnect()

@Writer.destroy =>
@warning "destroy #{_count} readers"
for _name, _reader of @READERS
@READERS[ _name ].destroy =>
_count--
if _count <= 0
@removeAllListeners()
cb()
return
@_destroyReaders( cb )
return

return
Expand Down Expand Up @@ -164,6 +181,20 @@ class NsqLogger extends require( "./basic" )
@log "error", "write messag to exceeded list", err
return
return

_destroyReaders: ( cb )=>
@warning "destroy #{_count} readers"
_count = Object.keys( @READERS ).length

for _name, _reader of @READERS
@READERS[ _name ].destroy =>
_count--
if _count <= 0
@removeAllListeners()
cb()
return
return


ERRORS: =>
return @extend {}, super,
Expand Down
38 changes: 35 additions & 3 deletions _src/test/main.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,47 @@ describe "----- nsq-logger TESTS -----", ->

describe "Active Tests", ->

it "wait for errors", ( done )->
logger2 = null

it "wait for errors of deactivated logger", ( done )->
@timeout(4000)
logger = new NsqLogger( extend( {}, CNF, { active: false} ) )
logger2 = new NsqLogger( extend( {}, CNF, { active: false} ) )

logger.on "error", ( err )->
logger2.on "error", ( err )->
throw err
return

setTimeout( done, 3000 )
return

it "activate logger", ( done )->

@timeout( 10000 )
_topic = "nsq_logger_test_activate_test"
_data = randoms.obj.string( 13, 666 )

logger2.on "message", ( topic, data, cb, msg )->
cb()
# wait for the previously generated topic
if topic is _topic
msg.attempts.should.be.Number().equal( 1 )

topic.should.equal( _topic )
data.should.eql( _data )

logger.removeAllListeners( "message" )
done()
return

logger2.on "ready", ->
logger2.Writer.publish( _topic, _data )
return

logger2.activate()

return

return


return

0 comments on commit dd8cc95

Please sign in to comment.