node.js 实现微信定时推送

目的
通过定时调用微信推送接口,实现一对一,一对多用户的实时推送,开机自启动进程
实现效果
node.js 实现微信定时推送

难点
定时推送
解决方案:通过node-schedule实现
安装

npm install node-schedule --save	// 定时任务
// function scheduleCancel(){
// 执行5s后自动取消
//   var counter = 1;
//   const j = schedule.scheduleJob(‘* * * * * *‘, function(){
//       console.log(‘定时器触发次数:‘ + counter);
//       counter++;
//   });
//   setTimeout(function() {
//       console.log(‘定时器取消‘)
//     // 定时器取消
//       j.cancel();   
//   }, 5000);
// }

// 每分钟的第30秒触发: ‘30 * * * * *‘

// 每小时的1分30秒触发 :‘30 1 * * * *‘

// 每天的凌晨1点1分30秒触发 :‘30 1 1 * * *‘

// 每月的1日1点1分30秒触发 :‘30 1 1 1 * *‘

// 2016年的1月1日1点1分30秒触发 :‘30 1 1 1 2016 *‘

// 每周1的1点1分30秒触发 :‘30 1 1 * * 1‘


const task = ()=>{
  // 每天的19:45:01时候触发
  schedule.scheduleJob(‘01 45 19 * * *‘, ()=>{
    console.log(‘scheduleCronstyle:‘+ new Date());
    // 做点什么
    request(url, params); // 推送消息
    console.log(‘成功执行‘);
  })
}

task()

开机自启动
方式一:通过pm2 windows pm2 开机启动 (windows存在兼容问题,失效)
安装

npm install pm2-windows-startup -g	// windows用户安装
npm install pm2 -g	// 自动启动
pm2 start main.js       // 使用
pm2 list	        // 查看任务
pm2 save	        // 保存当前任务
pm2 startup		// 开机自启动脚本
pm2 delete all          // 清空任务

方式二:通过node-windows
安装

npm install node-windows --save
// 编写index.js文件
var Service = require(‘node-windows‘).Service;
var svc = new Service({
    name:‘Atest‘,                //服务名称
    description:‘测试服务开启‘,        //服务描述
    script:‘D:/autoPush/autoPush.js‘,                //启动的文件路径
    wait:‘1‘,                        //程序崩溃重启时间间隔
    grow:‘0.25‘,                    //重启等待时间的间隔 如1,第二次1.25
    maxRestarts:‘40‘                //60s内最大重启次数
});
//监听安装
svc.on(‘install‘,()=>{
    svc.start();

console.log(‘服务已开启‘)
});
//卸载
svc.on(‘uninstall‘,()=>{
console.log(‘服务已卸载‘);
});
//只安装一次
svc.on(‘alreadyinstalled‘,()=>{
})
//存在就卸载。node nw.js 安装,再运行一次就是卸载
if(svc.exists) return svc.uninstall()
svc.install();  

测试pm2
第一步:执行pm2 start ‘文件名‘
node.js 实现微信定时推送
测试完成关闭进程
node.js 实现微信定时推送

测试node-windows
第一步:打开文件目录cmd执行 node index.js
第二步:打开任务管理器,看到存在该命名服务,即成功
node.js 实现微信定时推送

node.js 实现微信定时推送

上一篇:微信小程序性能测试之jmeter踩坑记录(三)


下一篇:如何调通微信支付及微信发货通知接口(Js API)