目标 :创建一个一致的 cron 表达式,该表达式在 PDT 的每个星期日午夜触发。不改变表达一年两次。
限制 : 不能指定时区。所有表达式均基于 UTC
背景 :AWS CloudWatch 事件支持 cron 表达式,但默认为 UTC。
我相信在 UTC
中很容易至 PST
0 8 * ? SUN *
但是,如果我需要它是
PDT
怎么办? ?
最佳答案
根据工作的性质,这里有一个潜在的黑客:
0 7,8 * ? SUN *
只有当触发的作业具有足够的内部逻辑能力,它可以自行决定是否应该继续执行时,这才有效。
作业开始时,必须有内部方式检查从系统时间转换为
America/Los_Angeles
后的当前时间。 (或 whatever 可以在运行时可用的任何时区库中调用它),以确定该时区中的当前时间是否足够接近午夜 - 在这种情况下它应该正常进行 - 或者当前时间离午夜更接近 +/- ~1 小时,在这种情况下,它应该只是安静地终止而不做任何工作。作业在每个指定的日期生成两次,但两次调用中的一次很快就完成了,因此使用的资源很少。
关于amazon-web-services - 是否可以在没有指定时区的情况下创建基于 PDT 的 cron 计划?说,时区与 UTC 相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392771/