使用 Cron 作业调度的 Java JAR 在不同时区运行

问题描述 投票:0回答:1

我正在开发一个 Spring boot 项目。

我在 Linux 服务器上使用 cron 作业安排了 Java JAR。有时,它们使用 IST 时区运行,而另一些日子,它们使用 UTC 时区运行

系统时区:

timedatectl
显示IST。

示例:

0 10 * * * /path/to/run_myapp.sh > /path/to/logfile.log 2>&1

根据上面的例子,
shell 文件应该每天在 10 AM IST 执行,但它在 4:30 AM 运行。这是根据 UTC 时区

令人困惑的是,有时 shell 脚本会在上午 10 点执行。

什么可能导致时区不一致,以及如何确保 JAR/shell 文件始终在正确的时区运行?有什么想法或建议吗?

最初,我以为服务器的时区正在改变,但事实并非如此。

java linux spring-boot cron
1个回答
0
投票

这似乎不是java/Spring问题。

首先,我建议您从中消除 java 并使用内置的

date
函数并在不带参数的情况下调用它,然后它将发出带有区域的时间。 将其通过管道传输到日志文件并每 10 分钟运行一次,看看 48 小时内会发生什么,即:

*/10 * * * * /bin/date >> /tmp/logfile.log 2>&1

是否有人/其他进程正在改变时区?和你一起玩智力游戏;-)

© www.soinside.com 2019 - 2024. All rights reserved.