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.
Files changed (2) hide show
  1. package/deps/room.js +14 -6
  2. 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
- for (let key of Object.keys(setting.fnCache)) {
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 && item.validMsTime && now > item.validMsTime) {
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())
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsir",
3
- "version": "3.1.3",
3
+ "version": "3.1.6",
4
4
  "description": "JavaScript Script Management Tool",
5
5
  "main": "index.js",
6
6
  "scripts": {