GitHub Actions定时任务配置完全指南:从Cron语法到实战示例

news/2025/2/1 14:58:53/

你好,我是悦创。

博客网站:https://blog.bornforthis.cn/

本教程将详细讲解如何在GitHub Actions中配置定时任务(Scheduled Tasks),帮助你掌握 Cron 表达式的编写规则和实际应用场景。

一、定时任务基础配置

1.1 核心语法结构

on:schedule:- cron: "分 时 日 月 周"

1.2 参数解析

组件取值范围说明
0-59分钟
0-23小时(UTC时间)
1-31月份中的日期
1-12 或 JAN-DEC月份
0-6 或 SUN-SAT星期(0=周日)

二、Cron表达式详解

2.1 特殊字符说明

符号示例作用
** * * * *任意值
,0,30 * * * *多个值
-0-5 * * * *范围值
/*/15 * * * *间隔值

2.2 常用配置模板

on:schedule:# 每5分钟(GitHub最小间隔)- cron: "*/5 * * * *"# 每日UTC时间0点- cron: "0 0 * * *"# 每周一北京时间上午8点- cron: "0 0 * * 1"timezone: Asia/Shanghai# 每月1号正午执行- cron: "0 12 1 * *"

三、高级配置技巧

3.1 时区设置

- cron: "0 8 * * *"timezone: Asia/Shanghai  # 支持IANA时区数据库格式

3.2 分支过滤

on:schedule:- cron: "0 0 * * *"branches:  # 限定触发的分支- main- release/*

3.3 多任务配置

on:schedule:- cron: "0 9 * * 1-5"   # 工作日早9点- cron: "0 18 * * 1-5"  # 工作日晚6点- cron: "0 12 * * 0"    # 周日中午12点

四、注意事项

  1. 执行延迟:GitHub Actions的定时任务可能有1-10分钟的延迟
  2. 频率限制
    • 公共仓库:每月2000分钟免费额度
    • 私有仓库:每月500分钟免费额度
  3. 日志查看:执行记录可在仓库的 Actions 标签页查看
  4. 表达式验证:推荐使用 crontab.guru 调试表达式

五、实战应用场景

5.1 自动化测试

name: Daily Test
on:schedule:- cron: "0 0 * * *"
jobs:test:runs-on: ubuntu-lateststeps:- run: npm test

5.2 数据备份

name: Weekly Backup
on:schedule:- cron: "0 3 * * 6"  # 每周六凌晨3点
jobs:backup:runs-on: ubuntu-lateststeps:- name: Backup databaserun: ./scripts/backup.sh

5.3 定时通知

name: Morning Reminder
on:schedule:- cron: "0 9 * * 1-5"  # 工作日早9点
jobs:notify:runs-on: ubuntu-lateststeps:- uses: actions-slack@v3with:payload: |{"text": "每日站会时间到!"}

SEO优化提示:本文包含高频搜索关键词「GitHub Actions定时任务」「Cron配置指南」「自动化工作流」,建议在相关技术社区和博客平台发布时保留标题结构。


http://www.ppmy.cn/news/1568451.html

相关文章

17.2 图形绘制2

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 17.2.3 Brush类 Brush 类用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部。这是一个抽象基…

基于Rectified Flow FLUX的图像编辑方法 RF-Solver

Diffusion Models专栏文章汇总:入门与实战 前言:现在越来越多的开源模型是基于Rectified Flow,特别是FLUX和HunYuan Video,但是Rectified Flow inversion的性质和之前有所不同,这篇博客解读一下如何使用Rectified Flow对FLUX进行编辑。 目录 RF直接逆向会出现问题 为什R…

本地运行大模型效果及配置展示

电脑上用ollama安装了qwen2.5:32b,deepseek-r1:32b,deepseek-r1:14b,llama3.1:8b四个模型,都是Q4_K_M量化版。 运行过程中主要是cpu和内存负载比较大,qwen2.5:32b大概需要22g,deepseek-r1:32b类…

Oracle 创建用户和表空间

Oracle 创建用户和表空间 使用sys 账户登录 建立临时表空间 --建立临时表空间 CREATE TEMPORARY TABLESPACE TEMP_POS --创建名为TEMP_POS的临时表空间 TEMPFILE /oracle/oradata/POS/TEMP_POS.DBF -- 临时文件 SIZE 50M -- 其初始大小为50M AUTOEXTEND ON -- 支持…

Hive详细讲解-概述与环境搭建

文章目录 1.Hive概述1.2.Hive架构原理1.3Driver 2.Hive最小化模式安装部署3.生产环境hive安装部署4.将hive的元数据存储到Mysql5.元数据库概述6.Hive服务的部署6.1HiveServer26.2Metastore 7.HiveServer2使用7.1Metastore嵌入模式配置7.2Metastore独立模式配置* 8.hive常用的参…

强化学习笔记——4策略迭代、值迭代、TD算法

基于策略迭代的贝尔曼方程和基于值迭代的贝尔曼方程,关系还是不太理解 首先梳理一下: 通过贝尔曼方程将强化学习转化为值迭代和策略迭代两种问题 求解上述两种贝尔曼方程有三种方法:DP(有模型),MC&#xff…

使用ArcMap或ArcGIS Pro连接达梦数据库创建空间数据库

一、ArcMap 1、本地windows安装 32 位 DM 数据库客户端 2、覆盖dll 将 32 位 DM 数据的..\dmdbms\bin 目录中的 .dll 文件全部拷贝到 ArcGIS 的 ..\Desktop10.5\bin 目录下,有同名文件直接覆盖掉 3、开启达梦数据库空间扩展支持 使用管理员用户登录数据&#xff…

Mysql的主从复制及扩展功能

一、配置过程 1.配置master vim /etc/my.cnf [mysqld] datadir/data/mysql 指定数据库文件的存储位置 socket/data/mysql/mysql.sock symbolic-links0 log-binmysql-bin 启用二进制日志,用于记录数据库的更…