Javascript 销毁节点cron作业或取消节点计划程序作业

Javascript 销毁节点cron作业或取消节点计划程序作业,javascript,node.js,cron,node-cron,Javascript,Node.js,Cron,Node Cron,我正在开发一个nodejs应用程序,它可以调度多个cron作业。 顺便说一句,我试图取消作业时出错了 情况如下 我使用node cron或node schedule创建了多个cron作业 一些作业的开始时间已经过去,然后我尝试使用脚本取消所有cron作业 我犯了如下错误。 TypeError:testJob.destory不是函数 你能帮我解决这个问题吗 cron模块/cronManager.js script/main.js 您的代码中有一个打字错误您有testJob1.destory()

我正在开发一个nodejs应用程序,它可以调度多个cron作业。 顺便说一句,我试图取消作业时出错了

情况如下

  • 我使用
    node cron
    node schedule
    创建了多个cron作业
  • 一些作业的开始时间已经过去,然后我尝试使用脚本取消所有cron作业
  • 我犯了如下错误。
    TypeError:testJob.destory不是函数
你能帮我解决这个问题吗

cron模块/cronManager.js script/main.js
您的代码中有一个打字错误您有
testJob1.destory()
,但应该是
testJob.destroy()

将停止并完全销毁计划的任务


假设这是示例代码,因此它缺少
cronManager.startCronjobs()
的一些参数,并且此函数不返回任何
承诺
使用
等待

发布您的代码。如果有一个作业已经启动,那么如果我尝试销毁该作业呢?它将销毁,将
testJob1.destory()
更改为
testJob.destroy()
我试过了,结果是一样的。我只是重写代码,在这里显示它。所以类型错误不是问题。然后更新你的问题我解决了问题。这是一个典型的问题。谢谢你的帮助。
const cron = require("node-cron") 

// cron jobs
let testJob1
let testJob2
let testJob3

async function startCronjobs(cronTimes) {
  testJob1 = cron.schedule(cronTimes.testTime1, () => {
    console.log("test 1 job")
  }, {
    scheduled: true, 
    timezone: "America/New_York"
  })
  testJob1.start() 

testJob2 = cron.schedule(cronTimes.testTime2, () => {
    console.log("test 2 job")
  }, {
    scheduled: true, 
    timezone: "America/New_York"
  })
  testJob2.start() 

testJob3 = cron.schedule(cronTimes.testTime3, () => {
    console.log("test 3 job")
  }, {
    scheduled: true, 
    timezone: "America/New_York"
  })
  testJob3.start() 
}

async function destroyCronjobs() {
  console.log("============= Destroy node-cron Jobs ================")
  return new Promise((resolve, reject) => {
    if(testJob1 !== undefined && testJob1 !== null) testJob1.destory()
    if(testJob2 !== undefined && testJob2 !== null) testJob2.destory()
    if(testJob3 !== undefined && testJob3 !== null) testJob3.destory() 
  })
}

module.exports.destroyJobs = destroyCronjobs
module.exports.startCronJobs = startCronjobs

const cronManager = require("./cronManager")
const express = require("express") 
const router = express.Router() 

router.post("/start", wrapper(async (req, res) => {
    await cronManager.startCronjobs()
}))

router.post("/destroy", wrapper(async (req, res) => {
    await cronManager.destoryCronjobs()
}))