【问题标题】:gae cron job for last day of every month每个月最后一天的 gae cron 工作
【发布时间】:2013-12-07 16:57:27
【问题描述】:

我希望 cron 作业的时间表是每个月的最后一天。我用过这个:

<schedule>last day of month 23:59</schedule>

对吗?

【问题讨论】:

    标签: google-app-engine cron


    【解决方案1】:

    first of month 00:00 启动作业的最简单方法。您可以将其调整为运行几个小时,然后将&lt;timezone&gt; 设置为比所需值更正的时区。如果所需的时区是 GMT,那么您可以将 cron 作业的时区设置为 Europe/Berlin,该作业将在该月的最后一天 23:00 GMT 执行。

    【讨论】:

    • 谢谢,但我认为我应该使用比我想要的更积极的时区(一旦它在纽约 0:00,它是格林威治标准时间 5:00,我的工作会迟到) .
    • 您可以随时查看您的管理界面 (http://localhost:8000/cron) 以验证 cron 作业在生产中运行的确切时间(UTC 时间)。 Source
    • 现在(2017)似乎“schedule”表达式应该是“first day of month 00:00”
    【解决方案2】:

    根据文档,您尝试创建的 Cron 表达式的格式为:

    ("every"|ordinal) (天) ["of" (monthspec)] (时间)

    地点:

    • ordinal 指定逗号分隔的“1st”、“first”等列表(两种形式都可以)
    • days 指定以逗号分隔的星期几列表(例如,“mon”、“tuesday”,接受短格式和长格式); "every day" 相当于 "every mon,tue,wed,thu,fri,sat,sun"
    • monthspec 指定以逗号分隔的月份名称列表(例如,“jan”、“march”、“sep”)。如果省略,则表示每月。您也可以说“月”来表示每个月,例如“1,8,15,22 of month 09:00”。
    • time 指定一天中的时间,以 24 小时制 HH:MM 表示。

    我认为没有直接表达您正在尝试做的事情。

    您可能需要创建多个 cron 表达式。例如31 of month 09:00 将在上午 9:00 处理所有月份的第 31 天,它应该处理所有有 31 天的月份,依此类推。

    【讨论】:

    • 谢谢。我试图避免创建多个 cron 表达式,因为我最多可以使用 20 个。
    • 不要认为这会起作用,因为您将无法有效地处理 2 月的闰年。
    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2011-09-02
    • 2020-05-03
    • 2013-04-08
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多