nl_tokens: heart beat
pl_tokens: function heartBeat ( ) { //extend session if needed if ( sessionStarted && autoExtend && trackTime ) { var last = getTimestamp ( ) ; if ( last - lastBeat > sessionUpdate ) { Countly . session_duration ( last - lastBeat ) ; lastBeat = last ; } } //process event queue if ( eventQueue . length > 0 ) { if ( eventQueue . <mask> <= maxEventBatch ) { toRequestQueue ( { events : JSON . stringify ( eventQueue ) } ) ; eventQueue = [ ] ; } else { var events = eventQueue . splice ( 0 , maxEventBatch ) ; toRequestQueue ( { events : JSON . stringify ( events ) } ) ; } storeSet ( "cly_event" , eventQueue ) ; } //process request queue with event queue if ( requestQueue . length > 0 && readyToProcess && getTimestamp ( ) > failTimeout ) { readyToProcess = false ; var params = requestQueue . shift ( ) ; //check if any consent to sync if ( Object . keys ( syncConsents ) . length ) { if ( consentTimer ) { clearTimeout ( consentTimer ) ; consentTimer = null ; } params . consent = JSON . stringify ( syncConsents ) ; syncConsents = { } ; } log ( "Processing request" , params ) ; makeRequest ( Countly . url , apiPath , params , function ( err , params ) { log ( "Request Finished" , params , err ) ; if ( err ) { requestQueue . unshift ( params ) ; failTimeout = getTimestamp ( ) + failTimeoutAmount ; } storeSet ( "cly_queue" , requestQueue ) ; readyToProcess = true ; } ) ; } setTimeout ( heartBeat , beatInterval ) ; }