我有一个石英工作,每天下午3点(服务器时间)运行。我想做的是让它在下午3点运行,但是对于美国的每个时区。石英工作会向我的用户发送一封电子邮件,我希望每个人都能在下午3点得到它。这样做的最佳方法是设置多个计划,然后在该触发器的设置时区中为用户查询数据库吗?
答案 0 :(得分:0)
你的想法几乎是我能想到的最好,最干净的方法。一项有几个触发器的工作 - 除了不同的时区之外相同。在工作中,您可以轻松检索当前使用的时区:
void execute(JobExecutionContext context) {
TimeZone tz = ((CronTrigger)context.getTrigger()).getTimeZone();
//find all users in tz
}