如何在Docker容器中调度Spring启动CronJob



我的spring启动应用程序中有一个cron作业,它定期运行。在启用作业时,自动触发作业,并且在Windows tomcat服务器

中按预期工作但是当相同的代码部署到Linux Docker环境中时。作业没有在预定时间被触发。我验证了下面的几个链接。但这并没有解决我的问题。Spring Boot计划任务在docker容器上不工作

处理这个问题的正确方法是什么?

TestJobScheduler.class:
-------------------------
@Configuration
@EnableScheduling
public class TestJobScheduler {
@Value("${test.job.enabled}")
private boolean isTestJobEnabled;

@Scheduled(cron = "${test.cron.expression}")
public void testSchedulerJob() {
if(isTestJobEnabled) {
//Do your work
}
}
}
application.properties:
------------------------
test.job.enabled=true
test.cron.expression=0 0 6 ? * 3,5

我遇到了这个问题,这是因为docker容器自动在UTC时区,尝试运行"date"在容器里看时间

使用ubuntu作为基本镜像来更改时区,在dockerfile中添加:

RUN apt-get update && apt-get -y install tzdata
ENV TZ="insert-time-zone" //Example: America/Chicago

查看这个问题了解更多信息。

添加到Dockerfile:

RUN apt-get update && apt-get -y install tzdata
ENV TZ="America/Araguaina"
RUN date

相关内容

  • 没有找到相关文章

最新更新