jsir 3.1.3 → 3.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deps/room.js +14 -6
- package/package.json +1 -1
package/deps/room.js
CHANGED
|
@@ -342,13 +342,16 @@ async function processTasks(defTasks) {
|
|
|
342
342
|
|
|
343
343
|
function cleanFnCache() {
|
|
344
344
|
const now = Date.now()
|
|
345
|
-
|
|
345
|
+
let countClean = 0;
|
|
346
|
+
const keys = Object.keys(setting.fnCache);
|
|
347
|
+
for (let key of keys) {
|
|
346
348
|
let item = setting.fnCache[key]
|
|
347
|
-
if (item
|
|
349
|
+
if (!item || !item.validMsTime || now > item.validMsTime) {
|
|
348
350
|
delete setting.fnCache[key]
|
|
351
|
+
countClean ++
|
|
349
352
|
}
|
|
350
353
|
}
|
|
351
|
-
console.$debug("cleanFnCache cost", `${Date.now() - now}ms`)
|
|
354
|
+
console.$debug("cleanFnCache cost", `${Date.now() - now}ms delete ${countClean} remain ${keys.length - countClean}`)
|
|
352
355
|
}
|
|
353
356
|
|
|
354
357
|
async function readLockPid(lockDir) {
|
|
@@ -370,6 +373,7 @@ async function cleanFileLocks() {
|
|
|
370
373
|
let lockDir = getLockDir();
|
|
371
374
|
const files = await fp.readdir(lockDir);
|
|
372
375
|
const deadPid = {}
|
|
376
|
+
let countClean = 0;
|
|
373
377
|
for (let file of files) {
|
|
374
378
|
let lockKeyDir = lockDir + '/' + file;
|
|
375
379
|
let pid = await readLockPid(lockKeyDir);
|
|
@@ -381,17 +385,23 @@ async function cleanFileLocks() {
|
|
|
381
385
|
// 持有锁的进程已经没了,则删除锁文件
|
|
382
386
|
try {
|
|
383
387
|
await fp.rm(lockKeyDir, { recursive: true, force: true });
|
|
388
|
+
countClean ++;
|
|
384
389
|
} catch (err) {
|
|
385
390
|
console.$error(`cleanLock ${lockKeyDir} failed`, err);
|
|
386
391
|
}
|
|
387
392
|
}
|
|
388
393
|
}
|
|
389
|
-
console.$debug("cleanFileLocks cost", `${Date.now() - now}ms`)
|
|
394
|
+
console.$debug("cleanFileLocks cost", `${Date.now() - now}ms delete ${countClean} remain ${files.length - countClean}`)
|
|
390
395
|
}
|
|
391
396
|
|
|
392
397
|
async function initRoom() {
|
|
393
398
|
// 每分钟清理缓存
|
|
394
399
|
cacheFn("jsir:cleanFnCache", cleanFnCache, 60_000)
|
|
400
|
+
if (setting.selfJsir?.port === setting.defaultPort) {
|
|
401
|
+
// 每分钟清理lock 文件
|
|
402
|
+
cacheFn("jsir:cleanFileLocks", cleanFileLocks, 60_000)
|
|
403
|
+
}
|
|
404
|
+
|
|
395
405
|
setting.roomTime = Date.now();
|
|
396
406
|
setting.nodeMap = await fileJson(jsirNodesFile);
|
|
397
407
|
let roomUpdateTouchTime = false;
|
|
@@ -403,8 +413,6 @@ async function initRoom() {
|
|
|
403
413
|
}
|
|
404
414
|
})
|
|
405
415
|
if (roomUpdateTouchTime) {
|
|
406
|
-
// 每分钟清理lock 文件
|
|
407
|
-
cacheFn("jsir:cleanFileLocks", cleanFileLocks, 60_000)
|
|
408
416
|
fileLock(updateRoomInfoLockKey, async () => {
|
|
409
417
|
let pros = []
|
|
410
418
|
pros.push(syncRooms())
|