请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

windows server 下跑定时任务

看到有个node-schedule,那我要跑定时任务时就在服务器里起一个node进程,一直跑着下面的进程就好了?
koa2和express之后的课有没有更方便的方法?

const schedule = require('node-schedule');
const path = require('path')
const fs = require('fs')

const source = path.join(__dirname,'../','../','logs','access.log')

function createDistPath(){
    const year = new Date().getFullYear()
    const month = new Date().getMonth() + 1
    const day = new Date().getDate()
    const hour = new Date().getHours()
    const min = new Date().getMinutes()
    const sec = new Date().getSeconds()

    return path.join(__dirname,'../','../','logs',`${year}-${month}-${day}-${hour}-${min}-${sec}.access.log`)
}

let job = schedule.scheduleJob('40 * * * * *', () => {
    const dest = createDistPath()
    fs.copyFileSync(source,dest)
    // fs.renameSync(source,dest);//不删测试
    console.log('生成了日志',dest)
});

正在回答 回答被采纳积分+3

1回答

双越 2022-04-12 16:54:38

koa2 和 express 没有集成定时任务功能。如果你用 egg.js ,它里面集成了这个功能。


PS:我觉得,自己单独写反而更好一些,更好控制。定时任务也不是多麻烦。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉6137024 #1
    那也就是说还是要单独写一个专门执行定时任务的js文件咯?像商城的定时退货也是设置定时任务咯?
    回复 有任何疑惑可以回复我~ 2022-04-12 16:59:21
  • 双越 回复 提问者 慕粉6137024 #2
    可以的。不过商城这么复杂的系统,退货估计得单独一个子系统来运作,不是一个 js 文件能搞定的。
    回复 有任何疑惑可以回复我~ 2022-04-12 21:55:17
  • 提问者 慕粉6137024 回复 双越 #3
    好的,谢谢~
    回复 有任何疑惑可以回复我~ 2022-04-13 09:40:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信