前端定时任务

可以用schedule或者cron两种方式,推荐使用cron方式,cron表达式比较通用。

1.添加node依赖

npm install node-schedule 

或者 npm install cron

2.创建文件schedule.js

import { getUserInfo } from '@/api/app'
const schedule = require('node-schedule')
const CronJob = require('cron').CronJob
/* 接收时间日期字符串 */
export function geSchedule() {
/*  let date = new Date(2012, 11, 21, 5, 30, 0) */
  const job = schedule.scheduleJob('*/15 * * * *', () => {
    getUserInfo().then((res) => {
      if (!location.href.includes('/projectTem/detail')) {
        job.cancel()
      }
    })
  })
}
// 定时刷新用户信息
export function setCron() {
  // eslint-disable-next-line no-new
  //  秒、分钟、小时、日期、月份、星期
  const job = new CronJob('*/15 * * * * ', function() {
    getUserInfo().then((res) => {
      if (!location.href.includes('/projectTem/detail')) {
        job.stop()
      }
    })
  }, null, true)
}

3.cron表达式说明 README.md

cron 表达式

秒(0-59)
分钟(0-59)
小时(0-23)
日(1-31)
月(1-12 或 JAN-DEC)
星期几(0-6 或 SUN-SAT)
年(可选,1970-2099)


特殊符号
(通配符):匹配任意值,例如 * * * * ?表示每秒执行一次任务。
,(列表):用于指定多个取值,例如0 0 6,12,18 * * ?表示每天6点、12点和18点执行任务。
-(范围):用于指定一个范围内的取值,例如0 0 9-17 * * MON-FRI表示周一至周五的9点到17点之间每小时执行一次任务。
/(步长):用于指定一个取值的步长,例如0 */30 * * * ?表示每30分钟执行一次任务。
?(无意义占位符):用于指定一个字段没有具体的取值,只能与其他字段一起使用,例如0 0 12 ? * MON-FRI表示周一至周五中午12点执行任务。
#(日历偏移量):用于指定某个月份的第几个周几,例如0 0 0 ? * 3#1表示每个月的第一个星期三执行任务。
L(Last):表示某个指定时间内的最后一天,比如0 0 L * * ?表示每月的最后一天执行任务。
W(Weekday):表示距离指定日期最近的工作日,比如0 0 0 15W * ?表示当月第15个工作日执行任务。如果15号是工作日,则执行任务;如果15号是周末,则任务会提前到最近的工作日即14号执行。
C(Calendar):表示距离指定日期最近的那个日子,比如0 0 0 1W * ?表示当月的第一个工作日执行任务。如果1号是工作日,则执行任务;如果1号是周末,则任务会延后到最近的工作日即2号执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值