fix: 修復文件監聽重復問題
This commit is contained in:
7
index.ts
7
index.ts
@@ -5,9 +5,11 @@ import YAML from 'yaml'
|
|||||||
import {IrequestData} from './types.js'
|
import {IrequestData} from './types.js'
|
||||||
|
|
||||||
const path: string = YAML.parse(fs.readFileSync('../config.yml', 'utf-8')).path
|
const path: string = YAML.parse(fs.readFileSync('../config.yml', 'utf-8')).path
|
||||||
|
const lock: string[] = []
|
||||||
|
|
||||||
fs.watch(path, async function (event, filename) {
|
fs.watch(path, async function (event, filename) {
|
||||||
if (!(filename && event === 'change')) return
|
if (!(filename && event === 'change') || lock.includes(filename)) return
|
||||||
|
lock.push(filename)
|
||||||
const jpath: string = `${path}/${filename}`
|
const jpath: string = `${path}/${filename}`
|
||||||
const requestData: IrequestData = JSON.parse(fs.readFileSync(jpath).toString())
|
const requestData: IrequestData = JSON.parse(fs.readFileSync(jpath).toString())
|
||||||
if (requestData.Processed === true) return
|
if (requestData.Processed === true) return
|
||||||
@@ -41,4 +43,7 @@ fs.watch(path, async function (event, filename) {
|
|||||||
}
|
}
|
||||||
requestData.Processed = true
|
requestData.Processed = true
|
||||||
fs.writeFileSync(jpath, JSON.stringify(requestData))
|
fs.writeFileSync(jpath, JSON.stringify(requestData))
|
||||||
|
setTimeout(() => {
|
||||||
|
lock.splice(lock.indexOf(filename), 1)
|
||||||
|
}, 300)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user