Croner:一款 JavaScript 和 TypeScript 的 Cron

家好,很高兴又见面了,我是"高级前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

什么是 Croner

Croner 用于在 JavaScript 或 TypeScript 中触发函数或计算 cron 表达式。Croner 没有任何外部依赖,支持 Node、 Deno、Bun、Browser 等所有主流环境。

目前 Croner 在 Github 上通过 MIT 协议开源,有超过 1.3k 的 star、19.8k 的项目依赖量、是一个值得关注的前端开源项目。Croner 开源库有以下特点:

如何使用 Croner

有关安装和使用的完整文档可在 https://croner.56k.guru 找到。Croner 允许开发者使用最喜欢的包管理器或 CDN 安装 croner,然后将其包含在项目中:

使用 Node.js 或 Bun:

// ESM Import ...
import { Cron } from 'croner';
// ... or CommonJS Require, destructure to add type hints
const { Cron } = require('croner');

在 Deno 环境中可以如下使用:

import { Cron } from 'https://deno.land/x/croner@6.0.3/dist/croner.js';

或者通过 UMD 模式在浏览器中使用:

下面是使用 Croner 的简单示例:

// 基础用法:按照 cron 表达式定义的时间间隔运行函数
const job = Cron('*/5 * * * * *', () => {
  console.log('This will run every fifth second');
});
// 枚举:接下来的 100 个星期日是哪一天?
const nextSundays = Cron('0 0 0 * * 7').nextRuns(100);
console.log(nextSundays);

// 距特定日期还剩多少天
const msLeft = Cron('59 59 23 24 DEC *').nextRun() - new Date();
console.log(
  Math.floor(msLeft / 1000 / 3600 / 24) + ' days left to next christmas eve'
);

// 使用非本地时区在特定日期/时间运行函数(时间为 ISO 8601 本地时间)
// 将根据Asia/Kolkata的时间在 2024-01-23 00:00:00 运行
Cron('2024-01-23T00:00:00', { timezone: 'Asia/Kolkata' }, () => {
  console.log('Yay!');
});

参考资料

https://github.com/hexagon/croner

https://www.youtube.com/watch?v=opOnCOZGWzI

展开阅读全文

页面更新:2024-02-22

标签:天和   进阶   表达式   工作日   函数   时区   日期   模式   时间   项目

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top