node定时任务与桌面通知

73 阅读2分钟

一、做这个小东西的背景

因为服务器上不知道什么原因导致某个进程总是几天就把cpu拉满
导致小程序上的请求没有得到响应,但是又没时间去找什么问题,因为开发这个后端的同事在忙别的项目比较急,所以就只能由我来暂时监控下,出了问题可以跟他讲

二、小工具的目的确定与技术选型

  1. 首先是我需要实现个功能,定时调用接口,然后有异常给我桌面弹通知
  2. 确定之后,再来看什么技术实现,因为我本身是前端开发,使用javascript相对比较熟悉,然后node可以直接运行,不需要依赖浏览器,便选择用node.js来实现这个小工具,电脑需要有node环境与安装了npm
  3. 这个东西需要电脑开着就寄几动,便包一层bat来启动,然后在放启动文件里让它开机就寄几动

三、开始动手开发

  1. 首先创建一个check文件夹用来放置需要执行的js文件checkRequest.js
  2. 需要使用到一个node库来实现桌面通知的功能node-notifier,在check文件夹下npm i node-notifier安装这个库
  3. 这个是我的文件结构
    image.png
  4. 然后再来编写定时任务程序
// 引入库
const notifier = require("node-notifier");
const check = async () => {
  try {
    await fetch(
      "https://xxx.xxx.xxx"
    );
  } catch (e) {
    showDesktopNotification('警告', `小程序接口连接异常,${e}`);
  }
};
const showDesktopNotification = (title, message) => {
  notifier.notify({
    title,
    message,
    sound: true,
    wait: true,
  });
};
// 定时任务
const interval = 1000 * 60 * 1; // 1分钟执行一次
// 定时发送检查程序是否成功运行
setInterval(check, interval);
showDesktopNotification('提示', '检查小程序接口程序启动')
// 运行程序
check();
  1. 程序写完之后,让他开机启动就行,需要新建一个.bat文件,用vscode打开,然后编写以下代码,文件路径就是放置js的文件路径
@echo off
node D:\code\working\check\checkRequest.js
  1. 再将bat文件放进启动文件夹就ok了
    C:\Users\xxx(用户)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

image.png

四、然后就结束了,小工具搞定

重启一下电脑就可以看到,桌面的右下角弹出了一个启动的通知 image.png
有个不完美的地方就是会弹出一个运行窗口,先最小化不管就好,切记不能关掉,关掉程序就中止了!!!!!!
可能后续可以用electron来做成桌面端应用程序