diff --git a/api.js b/api.js
index f06d200..7a473af 100644
--- a/api.js
+++ b/api.js
@@ -11,6 +11,8 @@ var conf = cl.load( "config.all" ).botanjs;
var hash = cl.load( "botansx.utils.hash" );
var rand = cl.load( "botansx.utils.random" );
+var HOT_CACHE = {};
+
var BotanJS = function()
{
events.EventEmitter.call( this );
@@ -89,6 +91,8 @@ BotanJS.prototype.compile = function( type )
var rainet = conf.rinet || conf.serviceUri;
+ var hotCache = HOT_CACHE[ type ] = HOT_CACHE[ type ] || {};
+
if( conf.type && "or".indexOf( conf.type ) != -1 )
{
this[ type ] = rainet + conf.type + type + "/" + resList.join( "/" );
@@ -102,8 +106,16 @@ BotanJS.prototype.compile = function( type )
};
- var q = resList.sort().join( "," );
- var lookupKey = hash.md5( q );
+ var resQuery = resList.sort().join( "," );
+ 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 fastCache = new Session( lookupKey, "BOTAN_JCACHE", true );
@@ -130,6 +142,8 @@ BotanJS.prototype.compile = function( type )
{
_self.storeForRender( rainet, type, ch );
+ hotCache[ lookupKey ] = ch;
+
Dragonfly.Debug( "Storing " + _trim( ch ) + " to fastcache[ " + fastCache.id + " ]" );
fastCache.spawn( 86400 );
@@ -161,7 +175,7 @@ BotanJS.prototype.compile = function( type )
}
else
{
- zlib.deflate( q, deflateComplete );
+ zlib.deflate( resQuery, deflateComplete );
}
} );
};
弄好了之後問題解消了大半。$ kubectl logs blog-dc684b5d5-fl8fc | grep album/tag | cut -c 34- | cut -d' ' -f 1 | sort | uniq | wc -l
Defaulted container "web" out of: web, redis, assets, assets-backup
21546