夏令时如何影响计划的触发器
按预定频率运行的触发器根据触发器的时区自动在标准时间(ST)和夏令时(DST)之间切换。但是,您应考虑标准时间和夏令时之间的切换如何影响您的触发器。根据您的时区和触发器的预定运行时间,时间变化可能会影响触发器运行的时间,或者其是否完全运行。
示例
调度不佳的的夜间触发器
您创建一个触发器并将其设置为山区时间每晚凌晨 2:00(UTC -6:00)运行。
在春天的某一天,您开始工作,发现触发器未运行。触发器未运行是因为在 1:59 之后,时钟跳过 2 点并直接跳至 3 点,因此它的预定时间从未到来。然后,在秋天的某一天,您开始工作,发现触发器运行了两次。发生这种情况是因为在 2:59 之后,时钟又回到 2:00,导致触发器再次运行。
调度不佳的依赖型触发器
假设您是某个小公司的一员,该组织在北美设有几个办事处。您可以使用能对数据中的可疑模式做出反应的触发器,来识别应付账款欺诈,而不需要专门的欺诈团队。这些触发器每晚都会根据前一天的新数据运行。
- 重复付款查找超过 1000 美元的可疑重复付款,并将这些记录分配为高优先级。此触发器在山区时间凌晨 2:00 运行。
- 通知管理会计查找优先级高的记录,并通知您公司的管理会计。此触发器取决于重复付款等触发器的结果,因此它在太平洋时间凌晨 1:30(30 分钟后)运行。
在秋季的某一天,您开始工作,发现存在高优先级重复付款,但未通知管理会计。发生这种情况是因为在凌晨 1:59 之后,山地时间又回到凌晨 1 点,并且暂时与太平洋时间相同。结果,通知管理会计在重复付款之前运行。
确保触发器按预期运行的提示
- 知道夏令时在您的触发器时区中的开始和结束时间。世界不同地区在不同时间以不同协调水平切换。
- 避免在受时间变化影响的时间安排触发器。
- 如果触发器依赖于其他触发器的结果,则:
- 考虑为所有这些触发器选择单个时区,让依赖关系不受时间变化的影响; 或
- 在依赖型触发器之间留出足够的时间,即使时间有所变化,执行顺序也不会被破坏。