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
1 changed files with 5 additions and 3 deletions
|
@ -26,7 +26,7 @@ class MemcachedDocumentStore {
|
|||
|
||||
// Save file in a key
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
@ -34,10 +34,12 @@ class MemcachedDocumentStore {
|
|||
// Get a file from a key
|
||||
get(key, callback, skipExpire) {
|
||||
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
|
||||
if (!skipExpire) {
|
||||
if (value && !skipExpire) {
|
||||
this.set(key, data, (updateSucceeded) => {
|
||||
if (!updateSucceeded) {
|
||||
winston.error('failed to update expiration on GET', {key});
|
||||
|
|
Loading…
Reference in a new issue