mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
Merge pull request #11287 from overleaf/bg-clear-first-op-timestamp-2
clear the first op timestamp whenever the queue is processed (2nd attempt) GitOrigin-RevId: 0764ca6360b2a9203e5d32499213b312563a2c47
This commit is contained in:
parent
25f75bbc41
commit
98cf5765e9
2 changed files with 16 additions and 1 deletions
|
@ -234,6 +234,7 @@ _mocks.deleteAppliedDocUpdates = (project_id, updates, callback) => {
|
||||||
status: 'lrem',
|
status: 'lrem',
|
||||||
})
|
})
|
||||||
multi.lrem(Keys.projectHistoryOps({ project_id }), 1, update)
|
multi.lrem(Keys.projectHistoryOps({ project_id }), 1, update)
|
||||||
|
multi.del(Keys.projectHistoryFirstOpTimestamp({ project_id }))
|
||||||
}
|
}
|
||||||
multi.exec(callback)
|
multi.exec(callback)
|
||||||
}
|
}
|
||||||
|
@ -247,7 +248,11 @@ export function destroyDocUpdatesQueue(project_id, callback) {
|
||||||
if (callback == null) {
|
if (callback == null) {
|
||||||
callback = function () {}
|
callback = function () {}
|
||||||
}
|
}
|
||||||
return rclient.del(Keys.projectHistoryOps({ project_id }), callback)
|
return rclient.del(
|
||||||
|
Keys.projectHistoryOps({ project_id }),
|
||||||
|
Keys.projectHistoryFirstOpTimestamp({ project_id }),
|
||||||
|
callback
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// iterate over keys asynchronously using redis scan (non-blocking)
|
// iterate over keys asynchronously using redis scan (non-blocking)
|
||||||
|
|
|
@ -27,6 +27,7 @@ describe('RedisManager', function () {
|
||||||
lrange: sinon.stub(),
|
lrange: sinon.stub(),
|
||||||
lrem: sinon.stub(),
|
lrem: sinon.stub(),
|
||||||
srem: sinon.stub(),
|
srem: sinon.stub(),
|
||||||
|
del: sinon.stub(),
|
||||||
}
|
}
|
||||||
this.rclient.multi = sinon.stub().returns(this.rclient)
|
this.rclient.multi = sinon.stub().returns(this.rclient)
|
||||||
this.RedisWrapper = {
|
this.RedisWrapper = {
|
||||||
|
@ -39,6 +40,9 @@ describe('RedisManager', function () {
|
||||||
projectHistoryOps({ project_id }) {
|
projectHistoryOps({ project_id }) {
|
||||||
return `Project:HistoryOps:${project_id}`
|
return `Project:HistoryOps:${project_id}`
|
||||||
},
|
},
|
||||||
|
projectHistoryFirstOpTimestamp({ project_id }) {
|
||||||
|
return `ProjectHistory:FirstOpTimestamp:{${project_id}}`
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -132,6 +136,12 @@ describe('RedisManager', function () {
|
||||||
.should.equal(true)
|
.should.equal(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should clear the first op timestamp', function () {
|
||||||
|
return this.rclient.del
|
||||||
|
.calledWith(`ProjectHistory:FirstOpTimestamp:{${this.project_id}}`)
|
||||||
|
.should.equal(true)
|
||||||
|
})
|
||||||
|
|
||||||
return it('should call the callback ', function () {
|
return it('should call the callback ', function () {
|
||||||
return this.callback.called.should.equal(true)
|
return this.callback.called.should.equal(true)
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue