Added temp hotcache to fix the pooling issue
This commit is contained in:
20
api.js
20
api.js
@@ -11,6 +11,8 @@ var conf = cl.load( "config.all" ).botanjs;
|
|||||||
var hash = cl.load( "botansx.utils.hash" );
|
var hash = cl.load( "botansx.utils.hash" );
|
||||||
var rand = cl.load( "botansx.utils.random" );
|
var rand = cl.load( "botansx.utils.random" );
|
||||||
|
|
||||||
|
var HOT_CACHE = {};
|
||||||
|
|
||||||
var BotanJS = function()
|
var BotanJS = function()
|
||||||
{
|
{
|
||||||
events.EventEmitter.call( this );
|
events.EventEmitter.call( this );
|
||||||
@@ -89,6 +91,8 @@ BotanJS.prototype.compile = function( type )
|
|||||||
|
|
||||||
var rainet = conf.rinet || conf.serviceUri;
|
var rainet = conf.rinet || conf.serviceUri;
|
||||||
|
|
||||||
|
var hotCache = HOT_CACHE[ type ] = HOT_CACHE[ type ] || {};
|
||||||
|
|
||||||
if( conf.type && "or".indexOf( conf.type ) != -1 )
|
if( conf.type && "or".indexOf( conf.type ) != -1 )
|
||||||
{
|
{
|
||||||
this[ type ] = rainet + conf.type + type + "/" + resList.join( "/" );
|
this[ type ] = rainet + conf.type + type + "/" + resList.join( "/" );
|
||||||
@@ -102,8 +106,16 @@ BotanJS.prototype.compile = function( type )
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var q = resList.sort().join( "," );
|
var resQuery = resList.sort().join( "," );
|
||||||
var lookupKey = hash.md5( q );
|
var lookupKey = hash.md5( resQuery );
|
||||||
|
|
||||||
|
if( hotCache[ lookupKey ] )
|
||||||
|
{
|
||||||
|
Dragonfly.Debug( "HOT_CACHE: " + lookupKey );
|
||||||
|
_self.storeForRender( rainet, type, hotCache[ lookupKey ] );
|
||||||
|
_self.emit( "complete" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var Session = cl.load( "botansx.modular.session" );
|
var Session = cl.load( "botansx.modular.session" );
|
||||||
var fastCache = new Session( lookupKey, "BOTAN_JCACHE", true );
|
var fastCache = new Session( lookupKey, "BOTAN_JCACHE", true );
|
||||||
@@ -130,6 +142,8 @@ BotanJS.prototype.compile = function( type )
|
|||||||
{
|
{
|
||||||
_self.storeForRender( rainet, type, ch );
|
_self.storeForRender( rainet, type, ch );
|
||||||
|
|
||||||
|
hotCache[ lookupKey ] = ch;
|
||||||
|
|
||||||
Dragonfly.Debug( "Storing " + _trim( ch ) + " to fastcache[ " + fastCache.id + " ]" );
|
Dragonfly.Debug( "Storing " + _trim( ch ) + " to fastcache[ " + fastCache.id + " ]" );
|
||||||
|
|
||||||
fastCache.spawn( 86400 );
|
fastCache.spawn( 86400 );
|
||||||
@@ -161,7 +175,7 @@ BotanJS.prototype.compile = function( type )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zlib.deflate( q, deflateComplete );
|
zlib.deflate( resQuery, deflateComplete );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user