背景

大家有没有这么一种困境

我现在需要去配置一个定时任务:"每天早上九点执行任务"

若你有一个好的定时任务平台,相信很容易就能配置完成。那若是没有定时任务平台呢?是不是就要自己写cron表达式

那 "每天早上九点执行任务" 的cron表达式怎么写呢?

这个时候我会去百度一些cron在线生成,因为我比较菜

然而,现在能找到的在线解析生成cron的网站有很多,但是使用体验都不太好,他可能是长这样的

如果我的需求再复杂一点点,"工作日的每天早上九点执行任务",那又该怎么操作呢

大多时候,我更需要知道一个cron表达式它是什么意思,比如 "0 9 */3 * *"。 这个时候,有很多网页的cron反解析就不好用了。后来我才知道,原来cron表达式分5,6,7位数,而我们熟知的crontab是5位数,意思是6,7位数的cron表达式在linux上是不可用的。各个解析网页对5,6,7位数的cron反解析的支持也是参差不齐的。

那么有没有一种,使用起来比较简洁,又支持5,6,7位数的cron解析呢?不如自己手搓一个吧!

所以 awesome-cron 诞生了

awesome-cron介绍

我们先来看看它的使用,我争取一张图能说明

是的,就这么简单,你只需要在输入框中输入cron表达式就行了

除了支持5,6,7位数的cron解析以外,我觉得它最大的亮点就是光标落在某处,就能在对应解释除标红,并且告诉你当前是时分秒还是什么,然后这个地方支持哪些写法

如果你只是一个使用者,那么你可以直接访问 传送门,就可以使用了

如果你是开发,那么很高兴地告诉你,它是一个vue组件,你可以引入到你的vue项目中

特点

  • Zero dependencies(0依赖)
  • Supports all cron expression special characters including * / , - ? L W, # (支持cron所有特殊符号的解析)
  • Supports 5, 6 (w/ seconds or year), or 7 (w/ seconds and year) part cron expressions(支持5,6,7位数的解析)
  • i18n support with 29 languages (国际化)

安装

npm install awesome-cron

使用

import { createApp } from "vue";
import cron from "awesome-cron"; const app = createApp(App);
app.use(cron);
app.mount("#app");

安装之后 你可以 全局加载到你的VUE SFC组建文件中,像这样:

<cron-parser><cronParser> 都是可以的

<template>
<cron-parser></cron-parser>
</template>

or

<template>
<cronParser></cronParser>
</template>

按需导入

手动导入

<script>
import { defineComponent } from "vue";
import { CronParser } from "awesome-cron"; export default defineComponent({
components: {
CronParser,
},
setup() {
return {};
},
});
</script> <template>
<CronParser></CronParser>
</template> <style></style>

如果觉得这个cron解析不错,希望能给这个项目点个star, 项目地址←

文章转至yongchin.xyz

最强cron解析器的更多相关文章

  1. 将定时任务cron 解析成中文

    在使用定时器 quartz 时,其中的cron 表达式,老板表示作为开发的你能看懂外,其他的非开发同事可能看不懂,要用一个他们能看懂的方式表达出来. 还好我们的项目要求的表达式不是特别的麻烦,所以就写 ...

  2. Spring源码情操陶冶#task:scheduled-tasks解析器

    承接前文Spring源码情操陶冶#task:executor解析器,在前文基础上解析我们常用的spring中的定时任务的节点配置.备注:此文建立在spring的4.2.3.RELEASE版本 附例 S ...

  3. Beautiful Soup常见的解析器

    Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快 ...

  4. 手写token解析器、语法解析器、LLVM IR生成器(GO语言)

    最近开始尝试用go写点东西,正好在看LLVM的资料,就写了点相关的内容 - 前端解析器+中间代码生成(本地代码的汇编.执行则靠LLVM工具链完成) https://github.com/daibinh ...

  5. Boost学习之语法解析器--Spirit

    Boost.Spirit能使我们轻松地编写出一个简单脚本的语法解析器,它巧妙利用了元编程并重载了大量的C++操作符使得我们能够在C++里直接使用类似EBNF的语法构造出一个完整的语法解析器(同时也把C ...

  6. Druid SQL 解析器概览

    概览 Druid 的官方 wiki 对 SQL 解析器部分的讲解内容并不多,但虽然不多,也有利于完全没接触过 Druid 的人对 SQL 解析器有个初步的印象. 说到解析器,脑海里便很容易浮现 par ...

  7. PHP-XML基于流的解析器及其他常用解析器

    PHP中有两种主要的XML解析器 1)基于树的解析器.它是把整个文档存储为树的数据结构中,即需要把整个文档都加载到内存中才能工作.所以,当处理大型XML文档时候,性能剧减.SimpleXML和DOM扩 ...

  8. 使用dom解析器对xml文档内容进行增删查改

    直接添代码: XML文档名称(one.xml) <?xml version="1.0" encoding="UTF-8" standalone=" ...

  9. 黎活明8天快速掌握android视频教程--15_采用Pull解析器解析和生成XML内容

    1.该项目主要有下面的两个作用 (1)将xml文件解析成对象的List对象,xml文件可以来自手机本地,也可以来自服务器返回的xml数据 (2)强list对象保存成xml文件,xml保存到手机的内存卡 ...

随机推荐

  1. 神经网络可视化《Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization》

    神经网络已经在很多场景下表现出了很好的识别能力,但是缺乏解释性一直所为人诟病.<Grad-CAM:Visual Explanations from Deep Networks via Gradi ...

  2. 虚拟机启动时报’A start job is running for /etc/rc.local .. Compatibility错误。

    虚拟机启动时报'A start job is running for /etc/rc.local .. Compatibility错误. 问题已经存在很长时间了,但是不影响ssh登录,遂置之未理. 经 ...

  3. .NET Core 实现后台任务(定时任务)BackgroundService(二)

    原文连接:https://www.cnblogs.com/ysmc/p/16468560.html 在上一篇文档中说到使用 IHostedService 接口实现定时任务,其中,有小伙伴就问到,为什么 ...

  4. ABAP BAPI 复制标准项目模板实现项目立项

    一.复制标准项目模板实现项目立项 因为CJ20N录屏存在困难,所以想通过BDC实现复制项目模板创建项目立项行不通,因此需要通过BAPI解决. 因为项目立项包含:项目定义.WBS.网络.作业,因此需要分 ...

  5. day01--MarkDown语法格式

    MarkDown语法格式 标题 一级标题 一级标题: 井号+空格+标题名字 二级标题 二级标题: 双井号+空格+标题名字 三级标题 三级标题: 三井号+空格+标题名字 ......... 字体 斜体( ...

  6. CSDN垃圾的没有底线!

    平时写代码,经常需要百度. 今天我输入搜索关键词"access sql字符串转日期"进行百度搜索: 然后点开第一条: 这个加粗的标题可以点的,再点开: 这个内容跟我的搜索关键词有什 ...

  7. Linux串口编程进阶

    在<Linux串口编程>编程一文中介绍了串口应用中常用的基本操作,如:串口打开关闭.串口设置.数据收发等.本篇文章主要基于常规串口操作进行了扩充,主要介绍如下操作: Linux系统使用非标 ...

  8. 第十四天python3 面向对象

    1.面向对象 是对现实世界中的事物进行抽象的方式: 一切皆对象: 对象是数据和操作的封装: 对象之间相互独立,但也可以相互作用: 三要素: 封装: 数据与方法的集合: 提供一个或者多个接口来访问:隐藏 ...

  9. Junit使用步骤和junit_@Before&@After

    测试: 1.定义一个测试类(测试用例) 建议: 测试类名:被测试的类型Test CalculatorTest 包名:xxx.xxx.xx.test com.li.Test 2.定义测试方法:可以独立运 ...

  10. 如何实现 System.out.println("a") 显示 b

    今天看到一篇文章不用反射,能否交换两个字符串的值. 心想字符串常量在常量池里面,是在就算用了反射也交换不了吧.转念一想,不对,字符串常量虽然本身在常量池里面,但是它依然是个对象,那么 private ...