目标:创建一个一致的cron表达式,在PDT的每个星期日午夜触发.一年两次不改变表达.
限制:无法指定时区.所有表达式都基于UTC
背景:AWS CloudWatch事件支持cron表达式,但默认为UTC.
我相信在UTC到PST很容易
0 8 * ? SUN *
但是,如果我需要它是PDT怎么办?
最佳答案 根据工作的性质,这是一个潜在的黑客:
0 7,8 * ? SUN *
这仅在触发的作业具有足够的内部逻辑能力以便能够自行决定是否应该继续执行时才有效.
当作业开始时,它必须有一种内部方式来检查从系统时间转换到America / Los_Angeles之后的当前时间(或者可以在运行时的任何时区库中调用它可以调用whatever),以确定当前时间是否为那时区已接近午夜 – 在这种情况下,它应该正常进行 – 或者如果当前时间距离午夜更近/ – ~1小时,在这种情况下它应该安静地终止而不做任何工作.这项工作在每个指定日期产生两次,但两次调用中的一次很快完成,因此使用的资源很少.