mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-10 22:50:46 +02:00
only flush to track-changes when ops are queued
This commit is contained in:
@@ -91,7 +91,7 @@ module.exports = DocumentManager =
|
||||
logger.log project_id: project_id, doc_id: doc_id, version: version, "flushing doc"
|
||||
PersistenceManager.setDoc project_id, doc_id, lines, version, (error) ->
|
||||
return callback(error) if error?
|
||||
TrackChangesManager.flushDocChanges project_id, doc_id, (error) ->
|
||||
TrackChangesManager.flushDocChangesIfNeeded project_id, doc_id, (error) ->
|
||||
return callback(error) if error?
|
||||
callback null
|
||||
|
||||
|
||||
@@ -171,6 +171,9 @@ module.exports = RedisManager =
|
||||
[length, _] = results
|
||||
callback(error, length)
|
||||
|
||||
getUncompressedHistoryOpLength: (doc_id, callback = (error, length) ->) ->
|
||||
rclient.llen keys.uncompressedHistoryOp(doc_id: doc_id), callback
|
||||
|
||||
getDocOpsLength: (doc_id, callback = (error, length) ->) ->
|
||||
rclient.llen keys.docOps(doc_id: doc_id), callback
|
||||
|
||||
|
||||
@@ -5,6 +5,16 @@ RedisManager = require "./RedisManager"
|
||||
crypto = require("crypto")
|
||||
|
||||
module.exports = TrackChangesManager =
|
||||
|
||||
flushDocChangesIfNeeded: (project_id, doc_id, callback = (error) ->) ->
|
||||
RedisManager.getUncompressedHistoryOpLength doc_id, (error, length) ->
|
||||
return callback(error) if error?
|
||||
if length > 0
|
||||
# only make request to track changes if there are queued ops
|
||||
TrackChangesManager.flushDocChanges project_id, doc_id, callback
|
||||
else
|
||||
callback()
|
||||
|
||||
flushDocChanges: (project_id, doc_id, callback = (error) ->) ->
|
||||
if !settings.apis?.trackchanges?
|
||||
logger.warn doc_id: doc_id, "track changes API is not configured, so not flushing"
|
||||
|
||||
Reference in New Issue
Block a user