首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >销毁节点cron作业或取消节点调度程序作业。

销毁节点cron作业或取消节点调度程序作业。
EN

Stack Overflow用户
提问于 2019-03-07 04:54:50
回答 1查看 4.7K关注 0票数 2

我正在开发一个nodejs应用程序来调度多个cron作业。顺便说一下,当我试图取消工作时,我遇到了一个错误。

情况如下。

  • 我使用node-cronnode-schedule创建了多个cron作业。
  • 几个作业的启动时间已经过去了,然后我尝试用脚本取消所有cron作业。
  • 我有个错误,如下所示。TypeError: testJob.destory is not a function

你能帮我解决这个问题吗?

cron模块/ cronManager.js

代码语言:javascript
代码运行次数:0
运行
复制
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

脚本/ main.js

代码语言:javascript
代码运行次数:0
运行
复制
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()
}))
EN

回答 1

Stack Overflow用户

发布于 2019-03-07 06:56:37

您的代码中有一个错误错误,您有testJob1.destory(),但是它应该是testJob.destroy()

销毁()将被停止并完全销毁计划的任务。

假设这是示例代码,这样它就缺少了cronManager.startCronjobs()的一些参数,而且这个函数也没有返回任何promise来使用await

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

https://stackoverflow.com/questions/55036349

复制
相关文章

相似问题

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