LockManager.js 531 B

123456789101112131415161718
  1. const Settings = require('@overleaf/settings')
  2. const redis = require('@overleaf/redis-wrapper')
  3. const rclient = redis.createClient(Settings.redis.lock)
  4. const keys = Settings.redis.lock.key_schema
  5. const RedisLocker = require('@overleaf/redis-wrapper/RedisLocker')
  6. module.exports = new RedisLocker({
  7. rclient,
  8. getKey(docId) {
  9. return keys.blockingKey({ doc_id: docId })
  10. },
  11. wrapTimeoutError(err, docId) {
  12. err.doc_id = docId
  13. return err
  14. },
  15. metricsPrefix: 'doc',
  16. lockTTLSeconds: Settings.redisLockTTLSeconds,
  17. })