背景 大家有沒有這麼一種困境 我現在需要去配置一個定時任務:"每天早上九點執行任務" 若你有一個好的定時任務平臺,相信很容易就能配置完成。那若是沒有定時任務平臺呢?是不是就要自己寫cron表達式 那 "每天早上九點執行任務" 的cron表達式怎麼寫呢? 這個時候我會去百度一些cron線上生成,因為我 ...
背景
大家有沒有這麼一種困境
我現在需要去配置一個定時任務:"每天早上九點執行任務"
若你有一個好的定時任務平臺,相信很容易就能配置完成。那若是沒有定時任務平臺呢?是不是就要自己寫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⭐, 項目地址←