我有一个函数,它通过POST方法和调试插入到数据库中,我用postman测试它,向它发送一个空的post请求,所以它执行控制器
该函数执行2次以上,1是插入到数据库中的,好的,我想用node-cron自动执行该函数
我的函数
export class GettingInfo {
ReadingFileFromServer = () => {
const file = path.resolve(__dirname, '../../../dist/entity/PRUEBA.txt')
try {
const data = fs.readFileSync(file, 'utf-8');
const lines = data.split("\n")
let values = []
let bi = []
lines.forEach(line => {
line.trim()
values = line.split("\|", 6).map(a => a.trim());
bi.push(values)
console.log(bi)
})
const convert = this.TransformingFiletoJson(bi)
console.log(convert)
const save = this.SavingReferences(convert)
console.log(save)
} catch (err) {
console.error(err), 'something has happened to the file';
}
}为了测试它,我在controller.ts中调用它
@Post('data')
createData(){
const tasks = new GettingInfo(this.referenceService)
tasks.ReadingFileFromServer()
return "created! 201 test.."
}
}但是现在,我想单独运行它,用下面的代码创建一个文件"execute.ts“,它不会单独运行
import cron = require("node-cron")
import {GettingInfo} from "./reference.task";
cron.schedule("5 * * * * *", ()=> {
const echale = new GettingInfo(this.referenceService)
echale.ReadingFileFromServer()
console.log("Executing...")
})发布于 2020-09-08 04:07:32
根据我在node-cron文档中看到的内容,您需要启动任务才能启动预定的cron执行。
将您的代码更改为:
const task = cron.schedule("5 * * * * *", ()=> {
const echale = new GettingInfo(this.referenceService)
echale.ReadingFileFromServer()
console.log("Executing...")
})
task.start()它应该是有效的。
https://stackoverflow.com/questions/63783062
复制相似问题