Fix memcached client fetch for key not found
The memcached client wasn't correctly handling looking up a key that didn't exist. Now we only try to push the expiration forward if there is actually a value in memcached. Also while I'm in here, allow expiration to be left blank.
This commit is contained in:
parent
ef0ca40533
commit
4cac6713ef
@ -26,7 +26,7 @@ class MemcachedDocumentStore {
|
|||||||
|
|
||||||
// Save file in a key
|
// Save file in a key
|
||||||
set(key, data, callback, skipExpire) {
|
set(key, data, callback, skipExpire) {
|
||||||
this.client.set(key, data, skipExpire ? 0 : this.expire, (error) => {
|
this.client.set(key, data, skipExpire ? 0 : this.expire || 0, (error) => {
|
||||||
callback(!error);
|
callback(!error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -34,10 +34,12 @@ class MemcachedDocumentStore {
|
|||||||
// Get a file from a key
|
// Get a file from a key
|
||||||
get(key, callback, skipExpire) {
|
get(key, callback, skipExpire) {
|
||||||
this.client.get(key, (error, data) => {
|
this.client.get(key, (error, data) => {
|
||||||
callback(error ? false : data);
|
const value = error ? false : data;
|
||||||
|
|
||||||
|
callback(value);
|
||||||
|
|
||||||
// Update the key so that the expiration is pushed forward
|
// Update the key so that the expiration is pushed forward
|
||||||
if (!skipExpire) {
|
if (value && !skipExpire) {
|
||||||
this.set(key, data, (updateSucceeded) => {
|
this.set(key, data, (updateSucceeded) => {
|
||||||
if (!updateSucceeded) {
|
if (!updateSucceeded) {
|
||||||
winston.error('failed to update expiration on GET', {key});
|
winston.error('failed to update expiration on GET', {key});
|
||||||
|
Loading…
Reference in New Issue
Block a user