window 10 局域网同步时间(解决错误:This scheduler instance is still active but was recovered by another instanc)

一、简介

在内网机使用 Quartz 时,一直在打印警告:This scheduler instance is still active but was recovered by another instanc.....

错误原因:该 Quartz 定时任务被多台机器执行,各个机器之间时间不同步,Quartz为保证数据一致性,后启动的定时任务不会执行

注意:下面操作在内网机实现,有些过程没有贴图

解决办法如下

二、解决方法

1、关闭其他机器 Quartz 定时任务

保证 Quartz 定时任务只有一台机器执行,可在 Quartz 配置文件 quartz.properties,添加 org.quartz.jobStore.isClustered=false
或者在 springboot 配置文件 application.yaml 添加 spring.quartz.properties.org.quartz.jobStore.isClustered=false

2、同步各机器时间

参考 https://www.jianshu.com/p/9bd350dcd151

机器说明:

  • 192.168.10.100:NTP 服务器
  • 192.168.10.101:客户端
①、NTP 服务器

修改注册表:
win+r 输入 regedit.exe 进入注册表编辑器,修改如下路径的参数值

# 把默认的 10 改为 5,5 的意思就是自身为可靠的时间源
计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\Config AnnounceFlags=5
# 将默认的 0,改为 1,1 为启用NTP服务器。
计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\TimeProviders\NtpServer Enabled=1

管理员进入 CMD,执行如下命令

net stop w32time
net start w32time

w32tm /stripchart /computer:127.0.0.1,有时间回显说明配置成功了

C:\WINDOWS\system32>w32tm /stripchart /computer:127.0.0.1
正在跟踪 127.0.0.1 [127.0.0.1:123]。
当前时间是 2022/7/8 20:02:43。
20:02:43, d:+00.0001958s o:+00.0000809s [                      *                       ]
20:02:45, d:+00.0003058s o:+00.0001023s [                      *                       ]
20:02:47, d:+00.0002958s o:+00.0000309s [                      *                       ]

添加防火墙规则

控制面板 —> 系统和安全 —> windows防火墙- --> 高级设置 —> 入站规则(右键) —> 新建规则 —> 端口 —> 下一步 ----> UDP ----> 特定本地端口:123

在这里插入图片描述

②、客户端同步 NTP 服务器时间

客户端 192.168.10.101 同步 192.168.10.100(NTP 服务器)时间

控制面板 -----> 时钟和区域 -----> 时期和时间 -----> Internet 时间 -----> 更改设置
在这里插入图片描述
点击立即更新发现同步服务器时间成功

三、结果

查看 Quartz 定时任务发现警告消失

猜你喜欢

转载自blog.csdn.net/qq_41538097/article/details/125684871