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

Google Cloud Scheduler单触发器实现每月25日及月末9点触发配置

Google Cloud Scheduler 双时间点定时调度实现方案

Google Cloud Scheduler 基于 App Engine 标准cron规则实现,不支持L这类非标准cron通配符,无需创建多个触发器,单触发器配合轻量逻辑判断即可完全满足需求:

  • 第一步配置cron调度规则,覆盖所有可能命中的日期:
    0 9 25,28,29,30,31 * *
    
    该规则会在每月25、28、29、30、31日的上午9点触发请求,覆盖所有月份的25号,同时覆盖平年2月(28天)、闰年2月(29天)、30天小月、31天大月的所有月末日期,不会遗漏任何目标执行时间。
  • 第二步在调度指向的目标服务(Cloud Function、Cloud Run、通用HTTP服务均可)入口处加极简日期判断:
    1. 获取服务运行时的当前日期
    2. 计算当前日期所属月份的总天数,得到当月最后一天的日期值
    3. 仅当当前日期是25号,或当前日期是当月最后一天时,才执行实际业务逻辑;其余触发场景直接返回200成功响应,终止流程即可。

该方案的额外开销几乎可以忽略:非目标日期的触发仅执行几行基础日期计算,不会产生可感知的资源成本,也不会误执行业务逻辑,维护成本远低于多触发器方案,不需要针对不同天数的月份单独维护调度规则。

判断逻辑参考(Python版本,其他编程语言实现逻辑完全一致):

from datetime import date, timedelta

def job_entry(request):
    today = date.today()
    # 计算当月最后一天:取下月1日往前推1天
    if today.month == 12:
        next_month_start = date(today.year + 1, 1, 1)
    else:
        next_month_start = date(today.year, today.month + 1, 1)
    month_last_day = (next_month_start - timedelta(days=1)).day

    # 非目标日期直接跳过
    if today.day not in (25, month_last_day):
        return "Skipped, not target date", 200

    # 以下写入实际需要执行的业务逻辑
    return "Job executed successfully", 200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:21:34