目标:创建一个一致的cron表达式,在PDT的每个星期日的午夜时分触发。而无需每年更换两次表达。是否可以创建一个基于PDT而不指定时区的cron时间表?比如说,时区与UTC相关联
限制:无法指定时区。所有表达式都基于UTC
背景:AWS CloudWatch事件支持cron表达式,但它默认为UTC。
我相信很容易在UTC
到
0 8 * ? SUN *
但是,如果我需要它什么是PDT
?
目标:创建一个一致的cron表达式,在PDT的每个星期日的午夜时分触发。而无需每年更换两次表达。是否可以创建一个基于PDT而不指定时区的cron时间表?比如说,时区与UTC相关联
限制:无法指定时区。所有表达式都基于UTC
背景:AWS CloudWatch事件支持cron表达式,但它默认为UTC。
我相信很容易在UTC
到
0 8 * ? SUN *
但是,如果我需要它什么是PDT
?
否。用于Cloudwatch事件的cron
只能在UTC
中安排。 AWS不支持其他TZ。没有办法来覆盖它。在Linux中,cron
使用本地机器的TZ。由于AWS是全球性服务,因此UTC是Cloudwatch cron
规则的理想选择和默认TZ。
Schedule Expressions for Rules
您可以创建在CloudWatch的事件在自动安排的自触发器使用cron或速度表达式规则。 所有预定事件都使用UTC时区,时间表的最低精度为1分钟。
根据工作的性质,这里有一个潜在的黑客:
0 7,8 * ? SUN *
这只能如果触发的工作是什么,有足够的内部逻辑功能,它可以自行决定它是否应该继续执行。
作业开始时,必须从系统时间America/Los_Angeles
转换后检查当前时间的内部方法(或whatever它可能在被称为任何时区库可在运行时),以确定是否当前在那个时区的时间已经接近午夜了 - 在这种情况下,它应该照常进行 - 或者如果当前时间接近午夜的+/- 1小时,在这种情况下,它应该静静地终止而不做任何事情工作。这项工作在指定的每一天产生两次,但两个调用中的一个很快完成,所以使用的资源很少。