|
|
@ -25,6 +25,7 @@ class Cache { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
get(pid,target_version) { |
|
|
|
get(pid,target_version) { |
|
|
|
|
|
|
|
pid=parseInt(pid); |
|
|
|
return new Promise((resolve,reject)=>{ |
|
|
|
return new Promise((resolve,reject)=>{ |
|
|
|
if(!this.db) |
|
|
|
if(!this.db) |
|
|
|
return resolve(null); |
|
|
|
return resolve(null); |
|
|
@ -37,12 +38,12 @@ class Cache { |
|
|
|
//console.log('comment cache miss '+pid);
|
|
|
|
//console.log('comment cache miss '+pid);
|
|
|
|
resolve(null); |
|
|
|
resolve(null); |
|
|
|
} else if(target_version===res.version) { // hit
|
|
|
|
} else if(target_version===res.version) { // hit
|
|
|
|
console.log('comment cache hit '+pid); |
|
|
|
console.log('comment cache hit',pid); |
|
|
|
res.last_access=(+new Date()); |
|
|
|
res.last_access=(+new Date()); |
|
|
|
store.put(res); |
|
|
|
store.put(res); |
|
|
|
resolve(res.data); |
|
|
|
resolve(res.data); |
|
|
|
} else { // expired
|
|
|
|
} else { // expired
|
|
|
|
console.log('comment cache expired '+pid+': ver',res.version,'target',target_version); |
|
|
|
console.log('comment cache expired',pid,': ver',res.version,'target',target_version); |
|
|
|
store.delete(pid); |
|
|
|
store.delete(pid); |
|
|
|
resolve(null); |
|
|
|
resolve(null); |
|
|
|
} |
|
|
|
} |
|
|
@ -52,6 +53,7 @@ class Cache { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
put(pid,target_version,data) { |
|
|
|
put(pid,target_version,data) { |
|
|
|
|
|
|
|
pid=parseInt(pid); |
|
|
|
return new Promise((resolve,reject)=>{ |
|
|
|
return new Promise((resolve,reject)=>{ |
|
|
|
if(!this.db) |
|
|
|
if(!this.db) |
|
|
|
return resolve(); |
|
|
|
return resolve(); |
|
|
@ -68,6 +70,23 @@ class Cache { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delete(pid) { |
|
|
|
|
|
|
|
pid=parseInt(pid); |
|
|
|
|
|
|
|
return new Promise((resolve,reject)=>{ |
|
|
|
|
|
|
|
if(!this.db) |
|
|
|
|
|
|
|
return resolve(); |
|
|
|
|
|
|
|
const tx=this.db.transaction(['comment'],'readwrite'); |
|
|
|
|
|
|
|
const store=tx.objectStore('comment'); |
|
|
|
|
|
|
|
let req=store.delete(pid); |
|
|
|
|
|
|
|
//console.log('comment cache delete',pid);
|
|
|
|
|
|
|
|
req.onerror=()=>{ |
|
|
|
|
|
|
|
console.warn('comment cache delete failed ',pid); |
|
|
|
|
|
|
|
return resolve(); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
req.onsuccess=()=>resolve(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
maintenance() { |
|
|
|
maintenance() { |
|
|
|
if(!this.db) |
|
|
|
if(!this.db) |
|
|
|
return; |
|
|
|
return; |
|
|
@ -88,7 +107,7 @@ class Cache { |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
console.log('comment cache db not full',count); |
|
|
|
console.log('comment cache db no need to maintenance',count); |
|
|
|
} |
|
|
|
} |
|
|
|
this.added_items_since_maintenance=0; |
|
|
|
this.added_items_since_maintenance=0; |
|
|
|
}; |
|
|
|
}; |
|
|
|