当前位置: 首页 > java >正文

Express实现定时任务

安装库

npm i -s node-schedule

创建文件夹scheduler,在其中创建index.js

const ciTask = require('./task/get_ci_data');
const jiraTask = require('./task/get_jira_data');
const TaskScheduler = require('./task/task_scheduler')class Scheduler {constructor() {this.jobs = [];}add(job) {this.jobs.push(job);}start() {this.jobs.forEach(job => job.start());}stop() {this.jobs.forEach(job => job.stop());}
}const scheduler = new Scheduler();scheduler.add(new TaskScheduler('0 0 8 ? * 1', ciTask))  //添加的定时任务
scheduler.add(new TaskScheduler('0 0 8 ? * 1', jiraTask))module.exports = scheduler

在其下的task文件夹中创建task_scheduler.js文件,创建TaskScheduler类

const schedule = require('node-schedule');class TaskScheduler {constructor(cronExpression, task) {// 将传入的 cron 表达式和任务保存为成员变量this.cronExpression = cronExpression;this.task = task;this.job = null;}start() {if (!this.job) {this.job = schedule.scheduleJob(this.cronExpression, this.task);}}stop() {if (this.job) {this.job.cancel();this.job = null;}}
}// 导出任务调度器类
module.exports = TaskScheduler;

在express的listen中启动scheduler

const scheduler = require('../scheduler');
server.listen(port, () => {scheduler.start();
});
http://www.xdnf.cn/news/15130.html

相关文章:

  • PBR渲染
  • 软件开发那些基础事儿:需求、模型与生命周期
  • 大模型在卵巢癌预测及诊疗方案制定中的应用研究
  • 河南专升本2026年练习题、真题和2000题每日一节
  • 分割网络Segformer
  • 【B题解题思路】2025APMCM亚太杯中文赛B题解题思路+可运行代码参考(无偿分享)
  • 设计模式(结构型)-适配器模式
  • c++——浅拷贝和深拷贝、浅赋值和深赋值
  • 基于强化学习的智能推荐系统优化实践
  • c/c++拷贝函数
  • 字节豆包又一个新功能,超级实用,4 种玩法,你肯定用得上!(建议收藏)
  • 力扣_二叉搜索树_python版本
  • 聚焦数据资源建设与应用,浙江省质科院赴景联文科技调研交流
  • 【龙泽科技】新能源汽车维护与动力蓄电池检测仿真教学软件【吉利几何G6】
  • Elasticsearch 滚动(Scroll)用法、使用场景及与扫描(Scan)的区别
  • DIDCTF-蓝帽杯
  • 【经典面经】C++新特性 TCP完整收发数据 TLS1.2 TLS1.3
  • 【C++】全套数据结构算法-线性表讲解(1)
  • Anaconda及Conda介绍及使用
  • 注意力机制十问
  • 简单记录一下Debug的折磨历程
  • 汽车级MCU选型新方向:eVTOL垂桨控制监控芯片的替代选型技术分析
  • 巨人网络持续加强AI工业化管线,Lovart国内版有望协同互补
  • UI前端大数据可视化实战技巧:如何利用数据故事化提升用户参与度?
  • 云暴露面分析完整指南
  • Qt:布局管理器Layout
  • [Meetily后端框架] 多模型-Pydantic AI 代理-统一抽象 | SQLite管理
  • React 核心知识点速览:从基础到关键概念
  • 7.12 卷积 | 最小生成树 prim
  • 手把手一起使用Miniforge3+mamba平替Anaconda(Win10)