@@ -20,6 +20,7 @@ if (ydocUpdateCallback != null && ydocUpdateCallback.slice(-1) !== '/') {
20
20
ydocUpdateCallback += '/'
21
21
}
22
22
const WORKER_DISABLED = env . getConf ( 'y-worker-disabled' ) === 'true'
23
+ const ROOM_STREAM_TTL = number . parseInt ( env . getConf ( 'y-room-stream-ttl' ) || '300' )
23
24
24
25
/**
25
26
* @param {string } a
@@ -125,14 +126,18 @@ export class Api {
125
126
this . persistWorker = null
126
127
127
128
const addScript = WORKER_DISABLED
128
- ? 'redis.call("XADD", KEYS[1], "*", "m", ARGV[1])'
129
+ ? `
130
+ redis.call("XADD", KEYS[1], "*", "m", ARGV[1])
131
+ redis.call("EXPIRE", KEYS[1], ${ ROOM_STREAM_TTL } )
132
+ `
129
133
: `
130
134
if redis.call("EXISTS", KEYS[1]) == 0 then
131
135
redis.call("XADD", "${ this . redisWorkerStreamName } ", "*", "compact", KEYS[1])
132
136
elseif redis.call("XLEN", KEYS[1]) > 100 then
133
137
redis.call("SADD", "${ this . prefix } :worker:checklist", KEYS[1])
134
138
end
135
139
redis.call("XADD", KEYS[1], "*", "m", ARGV[1])
140
+ redis.call("EXPIRE", KEYS[1], ${ ROOM_STREAM_TTL } )
136
141
`
137
142
138
143
this . redis = redis . createClient ( {
@@ -294,20 +299,12 @@ export class Api {
294
299
/**
295
300
* @param {string } room
296
301
* @param {string } docid
297
- * @param {boolean } [remove=false]
298
302
*/
299
- async trimRoomStream ( room , docid , remove = false ) {
303
+ async trimRoomStream ( room , docid ) {
300
304
const roomName = computeRedisRoomStreamName ( room , docid , this . prefix )
301
305
const redisLastId = await this . getRedisLastId ( room , docid )
302
306
const lastId = number . parseInt ( redisLastId . split ( '-' ) [ 0 ] )
303
- if ( remove ) {
304
- await this . redis . del ( roomName )
305
- } else {
306
- await this . redis . multi ( )
307
- . xTrim ( roomName , 'MINID' , lastId - this . redisMinMessageLifetime )
308
- . xDelIfEmpty ( roomName )
309
- . exec ( )
310
- }
307
+ await this . redis . xTrim ( roomName , 'MINID' , lastId - this . redisMinMessageLifetime )
311
308
}
312
309
313
310
/**
0 commit comments