如何使用Spring Boot在用户时区运行Cron作业

时间:2018-10-07 12:16:55

标签: spring-boot scheduled-tasks

我们有来自世界各地的用户在使用应用程序。我们的要求是每天在用户时区的凌晨12点运行cron作业,并且仅针对该时区的用户。

如何使用Spring Boot做到这一点?

2 个答案:

答案 0 :(得分:1)

@Scheduled表示法中,您可以传递时区,但只能传递单个时区,因此您需要使用自定义逻辑进行管理。

我相信您的用户记录已包含时区,因此为了实现它,您需要将cron作业设置为每半小时运行一次(覆盖所有时区,包括+ 1/2小时),获取所有具有午夜时区的时区都会使用户在那些时区中为其运行逻辑。

答案 1 :(得分:1)

您必须通过添加或减去小时以补偿时差,将用户时区中的所有cron作业时间(上午12点)转换为服务器上的等效时间。使用与cron作业时间相等的服务器时区,您可以安排所有cron作业。

相关问题