## 定時任務管理
- 進入“系統監控-定時任務”菜單,可對任務進行暫停、恢復、編輯、刪除操作,添加新的任務時,任務類由開發人員填寫,保存后立即開始執行

## Cron 表達式
### 表達式結構
Cron表達式是一個字符串,字符串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義,語法格式如下:
{秒數} {分鐘} {小時} {日期} {月份} {星期} {年份(可為空)}
例: “0 0 12 ? \* WED” 在每星期三下午12:00 執行(年份通常 省略)
### 各字段及符號含義
cron表達式包含的必要組件:
| 位置 | 字段 | 允許值 | 允許的特殊字符 |
| :-: | :-- | :-- | :-- |
| 1 | 秒(Seconds) | 0~59的整數 | , - \* / 四個字符 |
| 2 | 分(Minutes) | 0~59的整數 | , - \* / 四個字符 |
| 3 | 時(Hours) | 0~23的整數 | , - \* / 四個字符 |
| 4 | 日期(DayofMonth) | 1~31的整數(根據實際情況而定) | ,- \* ? / L W C 八個字符 |
| 5 | 月(Month) | 1~12的整數或者 JAN-DEC | , - \* / 四個字符 |
| 6 | 周(DayofWeek) | 1~7的整數或者 SUN-SAT (1=SUN) | , - \* ? / L C # 八個字符 |
| 7 | 年(可選,留空)(Year) | 1970~2099 | , - \* / 四個字符 |
特殊符號的含義:
| 特殊字符 | 說明 |
| :-- | :-- |
| \* | 通配符,任意值 |
| ? | 無特定值。通常和其他指定的值一起使用,表示必須顯示該值但不能檢查 |
| \- | 范圍。e.g.小時部分10-12表示10:00,11:00, 12:00 |
| , | 列分隔符。可以讓你指定一系列的值。e.g.在星期域中指定MON、TUE和WED |
| / | 增量。表示一個值的增量,e.g.分鐘域中0/1表示從0開始,每次增加1min |
| L | 表示Last。它在日期和星期域中表示有所不同。在日期域中,表示這個月的最后一天,而在星期域中,它永遠是7(星期六)。當你希望使用星期中某一天時,L字符非常有用。e.g.星期域中6L表示每一個月的最后一個星期五 |
| W | 在本月內離當天最近的工作日觸發,所謂的最近工作日,即當天到工作日的前后最短距離,如果當天即為工作日,則距離是0;所謂本月內指的是不能跨月取到最近工作日,即使前/后月份的最后一天/第一天確實滿足最近工作日。e.g. LW表示本月的最后一個工作日觸發,W強烈依賴月份。 |
| # | 表示該月的第幾個星期,e.g. 1#2表示每一個月的第一個星期一 |
| C | 日歷值。日期值是根據一個給定的日歷計算出來的。在日期域中給定一個20C將在20日(日歷包括20日)或20日后日歷中包含的第一天(不包括20日)激活觸發器。例如在一個星期域中使用6C表示日歷中星期五(日歷包括星期五)或者第一天(日歷不包括星期五) |
### Cron 表達式案例
\*/5 \* \* \* \* ? 每隔5秒執行一次
0 \*/1 \* \* \* ? 每隔1分鐘執行一次
0 0 5-15 \* \* ? 每天5-15點整點觸發
0 0/3 \* \* \* ? 每三分鐘觸發一次
0 0-5 14 \* \* ? 在每天下午2點到下午2:05期間的每1分鐘觸發
0 0/5 14 \* \* ? 在每天下午2點到下午2:55期間的每5分鐘觸發
0 0/5 14,18 \* \* ? 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發
0 0/30 9-17 \* \* ? 朝九晚五工作時間內每半小時
0 0 10,14,16 \* \* ? 每天上午10點,下午2點,4點
0 0 12 ? \* WED 表示每個星期三中午12點
0 0 17 ? \* TUES,THUR,SAT 每周二、四、六下午五點
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44觸發
0 15 10 ? \* MON-FRI 周一至周五的上午10:15觸發
0 0 23 L \* ? 每月最后一天23點執行一次
0 15 10 ? \* 6L 每月的最后一個星期五上午10:15觸發
0 15 10 \* \* ? 2005 2005年的每天上午10:15觸發
0 15 10 ? \* 6L 2002-2005 2002年至2005年的每月的最后一個星期五上午10:15觸發
0 15 10 ? \* 6#3 每月的第三個星期五上午10:15觸發
“30 \* \* \* \* ?” 每半分鐘觸發任務
“30 10 \* \* \* ?” 每小時的10分30秒觸發任務
“30 10 1 \* \* ?” 每天1點10分30秒觸發任務
“30 10 1 20 \* ?” 每月20號1點10分30秒觸發任務
“30 10 1 20 10 ? \*” 每年10月20號1點10分30秒觸發任務
“30 10 1 ? 10 SUN 2018” 2018年10月每周日1點10分30秒觸發任務
“15,30,45 \* \* \* \* ?” 每15秒,30秒,45秒時觸發任務
“15-45 \* \* \* \* ?” 15到45秒內,每秒都觸發任務
“15?5\* \* \* \* ?” 每分鐘的每15秒開始觸發,每隔5秒觸發一次
“15-30?5\* \* \* \* ?” 每分鐘的15秒到30秒之間開始觸發,每隔5秒觸發一次
“0 0/3 \* \* \* ?” 每小時的第0分0秒開始,每三分鐘觸發一次
“0 15 10 ? \* MON-FRI” 星期一到星期五的10點15分0秒觸發任務
- 前言&版本說明
- 概念
- XBoot 是什么?
- 系統架構
- 主要使用的開源組件
- 角色控制訪問權限(RBAC)
- 用戶手冊
- 系統配置
- 工作流使用配置
- 定時任務調度
- 智能助手客服機器人
- 項目本地運行
- 后端運行
- 前端運行
- 項目結構說明
- 附:使用Oracle等數據庫
- 模塊化版本
- 后端開發指南
- 基本開發指南
- 前后端數據交互標準
- 工具類及數據權限
- 代碼生成器-30秒搞定CRUD
- 增刪改查CRUD
- 日志類型注解擴展
- 邏輯刪除
- 各驗證碼使用及配置
- 接口文檔使用及認證
- 前端開發指南
- 基本開發指南
- 主題/Logo/首頁等配置
- 路由菜單配置
- 多語言國際化配置
- 自定義圖標icon
- 工具類及數據獲取
- 其他說明
- 完整版開發指南
- 前端Vue代碼生成器
- Activiti工作流
- 單點登錄配置
- 智能助手/客服機器人
- MinIO對象存儲服務搭建
- 第三方社交賬號配置
- 短信開發/站內消息/郵件
- Vaptcha驗證碼
- 禁用詞使用
- 前端移除CDN
- 其他說明
- 開放平臺及單點登錄
- 開放平臺使用指南
- Web接入開發流程
- 單點登錄開發指南
- 微信小程序端開發指南
- 項目導入與開發必讀
- 業務組件
- 產品組件(小)
- 產品組件(大)
- 優惠券組件
- 評論列表組件
- 紅包組件
- 推薦商品組件
- 頁面設計
- 商品詳情頁及SKU設計
- 通用方法工具類說明
- 開發經驗與踩坑分享
- Uniapp端開發指南
- APP后端開發指南
- Uniapp前端開發指南
- 開發新功能示例
- 后端開發新模塊
- 前端開發新頁面
- 測試
- SonarQube代碼質量管理
- TestNG單元測試
- ExtentReports測試報告
- Selenuim自動化Web測試
- Appuim自動化App測試
- JMeter壓測性能測試
- 部署
- Spring Boot配置
- 快速部署
- 后端部署
- 前端部署
- 前端部署優化
- Docker容器化部署
- 服務器配置
- 持續集成
- GitLab
- GitLab CI
- XBoot 腳本參考
- Jenkins
- Jenkins安裝
- XBoot CI參考
- DevOps環境搭建
- 組件安裝列表
- 開發設計規范
- 分支管理
- 數據庫設計規范
- Redis使用規范
- Java基礎開發規范
- Rest API規范
- 項目結構規范
- 前端開發規范
- 前端設計規范
- 項目搭建分享
- 后端相關
- SpringBoot 2.x區別總結
- Spring Security整合JWT
- Spring Security動態權限管理
- Spring Boot 2.x整合Quartz
- Spring Boot 2.x整合Websocket
- Spring Boot 2.x整合Activiti工作流以及模型設計器
- Spring Boot + Security全局跨域配置
- 前端相關
- axios請求封裝 統一異常處理
- 動態路由菜單加載
- 多維度控制權限至按鈕顯示
- 發送消息圖標紅點實時顯示
- 動態組件單頁操作
- XBoot助你【告別996】
- 業務開發踩坑
- 你會用開發神器IDEA嗎
- Lombok你知道多少
- 你還在手動校驗參數嗎
- 你真的會用JPA嗎
- Lamda表達式
- Stream流式API
- 告別資源關閉
- Optional避免null
- 谷歌Guava工具包
- 線程池
- 其他小經驗技巧
- 更新日志及步驟
- 常見問題