IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 使用gocron实现秒级定时任务 -> 正文阅读

[系统运维]使用gocron实现秒级定时任务

项目简介

使用Go语言开发的定时任务集中调度和管理系统, 用于替代Linux-crontab

功能特性

  • Web界面管理定时任务, 支持动态添加、删除、编辑任务
  • crontab时间表达式,精确到秒
  • 任务执行失败重试设置
  • 任务超时设置
  • 延时任务
  • 任务类型
    • shell任务
    • 查看任务执行日志
    • 任务执行结果通知, 支持邮件、Slack

1、cron表达式的基本格式

在linux中使用过crontab,对定时任务应该就会有所了解,linux中利用crontab -e打开crontab表来添加定时任务,但是只能精确到分钟,go中却可以精确到秒。表达式如下:

 ┌─────────────second 范围 (0 - 60)
 │ ┌───────────── min (0 - 59)
 │ │ ┌────────────── hour (0 - 23)
 │ │ │ ┌─────────────── day of month (1 - 31)
 │ │ │ │ ┌──────────────── month (1 - 12)
 │ │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
 │ │ │ │ │ │                  Saturday)
 │ │ │ │ │ │
 │ │ │ │ │ │
 *  *  *  *  *  *

Linux-crontab时间表达式语法, 支持秒级任务定义
格式: 秒 分 时 天 月 周
示例:
1 * * * * * 每分钟第一秒运行
*/20 * * * * * 每隔20秒运行一次
0 30 21 * * * 每天晚上21:30:00运行一次
0 0 23 * * 6 每周六晚上23:00:00 运行一次
快捷语法:
@yearly 每年运行一次
@monthly 每月运行一次
@weekly 每周运行一次
@daily 每天运行一次
@midnight 每天午夜运行一次
@hourly 每小时运行一次
@every 30s 每隔30秒运行一次
@every 1m20s 每隔1分钟20秒运行一次
@every 3h5m10s 每隔3小时5分钟10秒运行一次

2、特殊字符

星号:匹配所有值

斜线:增长间隔,*/5表示5 10 15....分钟运行

逗号:枚举值,1,13,21表示1 13 21分钟运行

连字符:表示范围,10-15表示10 11 12 13 15分钟运行

问号:只用于日和星期,表示不指定,可用*替代

1.安装Go
使用go程序必须先有go,因此这里以最简单的方式进行安装介绍。

1.1 windows安装
下载链接
https://studygolang.com/dl/golang/go1.12.5.windows-amd64.msi

安装
直接下一步下一步,直到完成即可。windows默认会添加到环境变量中。

测试安装成功与否

cmd中输入以下命令:

go version
如果能输出版本信息,说明安装成功

1.2 linux安装
安装

yum install go
测试

go version
2.下载gocron
gocron需要使用下载gocron和gocron-node

这我里以windows下为例,linux也是一样的。
下载地址:https://github.com/ouqiang/gocron/releases
下载后在cmd中运行gocron与gocron-node

启动gocron
giftpc@gift MINGW64 /d/gocron
$ /d/gocron/gocron.exe web
[Macaron] listening on 0.0.0.0:5920 (production)
启动gocron-node
giftpc@gift MINGW64 /d/gocron
$ /d/gocron/gocron-node.exe
time="2019-06-04T13:32:12+08:00" level=info msg="server listen on 0.0.0.0:5921"
打开web界面
从上面可以看到gocron默认监听的是5920端口,通过浏览器访问:localhost:5920便可以打开web管理窗口


首页打开需要进行一些安装配置(需要有数据库支持,建好数据库后自动建的表)

安装完成后会跳转到登录界面


添加任务节点
这里的每个定时任务都需要在一个任务节点下,因此想要添加一个定时任务需要先添加一个任务节点,示例如下:


添加定里任务
这里按照以下图片进行添加即可:

?


3. 文档
添加任务时的一些规则与语法设置方式,可以参考文档进行学习与配置。

文档-https://github.com/ouqiang/gocron/wiki

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 16:00:29  更:2022-03-04 16:01:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:26:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码