You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Action中设置Cron Job实现每月第一个周四定时执行

解决方案
  • 首先调整GitHub Action的定时触发规则:因为每月第一个周四一定落在当月1-7日范围内,所以先把schedule的cron表达式修改为0 2 1-7 * *,仅在每月前7天的凌晨2点触发工作流,相比每日触发更节省资源。
  • 新增日期校验步骤:在执行实际业务逻辑前,先判断当前日期是否为周四,不符合条件则直接终止工作流,不执行后续操作。

完整配置如下:

name: daily-cron-job
on:
  schedule:
    # 每月1-7号凌晨2点触发(默认UTC时区,如需对应北京时间可调整小时字段,比如北京时间2点对应UTC前一天18点,可改为'0 18 31,1-6 * *'适配)
    - cron: '0 2 1-7 * *'
jobs:
  cron:
    runs-on: ubuntu-latest
    steps:
      - name: 校验是否为当月第一个周四
        id: check-date
        run: |
          # 周几数值为1-7,对应周一到周日,周四为4
          if [ $(date +%u) -ne 4 ]; then
            echo "今天不是周四,终止任务"
            exit 1
          fi
      - name: populate-previous-month
        # 仅上一步校验通过才执行当前步骤
        if: success()
        run: |
          curl --request POST \
          --url 'https://example.com' \
          --header 'Authorization: Bearer ${{ secrets.ACTION_KEY }}'

注意:如果需要适配非UTC的自定义时区,除了调整cron参数外,也可以在日期校验步骤中先切换时区再进行判断,避免出现时间偏差。

内容的提问来源于stack exchange,提问作者K20GH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:06:03