3

我有一个石英作业,每天下午 3 点(服务器时间)运行。我想做的是让它在下午 3 点运行,但在美国的每个时区运行。石英作业会触发一封电子邮件给我的用户,我希望每个人都在他们的时间下午 3 点收到它。最好的方法是设置多个计划,然后在数据库中查询该触发器设置的时区中的用户吗?

4

1 回答 1

2

你的想法几乎是我能想到的最好和最干净的方法。一项具有多个触发器的作业 - 除了不同的时区之外相同。在作业中,您可以轻松检索当前正在使用的时区:

void execute(JobExecutionContext context) {
    TimeZone tz = ((CronTrigger)context.getTrigger()).getTimeZone();
    //find all users in tz
}
于 2012-08-17T21:30:17.863 回答