首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用node-cron执行自动函数

如何使用node-cron执行自动函数
EN

Stack Overflow用户
提问于 2020-09-08 03:12:28
回答 1查看 139关注 0票数 2

我有一个函数,它通过POST方法和调试插入到数据库中,我用postman测试它,向它发送一个空的post请求,所以它执行控制器

该函数执行2次以上,1是插入到数据库中的,好的,我想用node-cron自动执行该函数

我的函数

代码语言:javascript
复制
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中调用它

代码语言:javascript
复制
    @Post('data')
    createData(){
        const tasks = new GettingInfo(this.referenceService)
        tasks.ReadingFileFromServer()
        return "created! 201 test.."
    }

}

但是现在,我想单独运行它,用下面的代码创建一个文件"execute.ts“,它不会单独运行

代码语言:javascript
复制
import cron = require("node-cron")
import {GettingInfo} from "./reference.task";


cron.schedule("5 * * * * *", ()=> {
    const echale = new GettingInfo(this.referenceService)
    echale.ReadingFileFromServer()
    console.log("Executing...")
})
EN

回答 1

Stack Overflow用户

发布于 2020-09-08 04:07:32

根据我在node-cron文档中看到的内容,您需要启动任务才能启动预定的cron执行。

将您的代码更改为:

代码语言:javascript
复制
const task = cron.schedule("5 * * * * *", ()=> {
    const echale = new GettingInfo(this.referenceService)
    echale.ReadingFileFromServer()
    console.log("Executing...")
})

task.start()

它应该是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63783062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档