jfinal引入cron4j插件,重复执行定时任务的问题,不是tomcat

现在写了一个定时任务,但是每次都是执行两次,前一次还没执行完,第二次马上执行,导致方法都执行了两次,

image.png

image.png

image.png

评论区

杜福忠

2020-11-27 14:12

不是Tomcat部署,是什么容器运行的?
https://my.oschina.net/jfinal/blog/353062

可能还是有加载项目两次导致的,
检查一下是不是每个任务器都是同时执行两次, 如果只有它一个,那就检查是不是有地方重复调用了。

如果实在找不到原因,可以先建立一个静态布尔变量,任务进入之后就标记true,任务结束再改为false,为true时就直接结束任务,临时顶一下

当下星辰

2020-11-27 14:32

@杜福忠 好的,谢谢,我还是用你的临时方案解决吧

当下星辰

2020-11-27 14:37

@当下星辰 是每个任务器同时执行了两次

杜福忠

2020-11-27 14:47

@当下星辰 不是Tomcat部署,是什么容器运行的?

当下星辰

2020-11-27 14:52

@杜福忠 我弄错了,是tomcat运行的

杜福忠

2020-11-27 14:56

@当下星辰 那就是配置错了,看波总的博客:https://my.oschina.net/jfinal/blog/353062
本地开发的话,是一样的,都是有配置文件的

当下星辰

2020-11-27 15:23

@杜福忠 要部署linux服务器的

当下星辰

2020-11-30 10:25

@杜福忠 我搞错了,不知道undertow也是一个容器,用的是这个容器,不过原因找到了,是定时任务的多线程导致的,需要加锁

杜福忠

2020-11-30 12:21

@当下星辰 昂,“前一次还没执行完,第二次马上执行”,意思是代码执行时间超过第二次运行时间了啊。那注意处理synchronized时的代码阻塞问题

热门反馈

扫码入社