首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal引入cron4j插件,重复执行定时任务的问题,不是tomcat
当下星辰
2020-11-27 11:30
现在写了一个定时任务,但是每次都是执行两次,前一次还没执行完,第二次马上执行,导致方法都执行了两次,
项目:
JFinal
1
评论区
杜福忠
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时的代码阻塞问题
回复
发送
我要反馈
热门反馈
扫码入社
https://my.oschina.net/jfinal/blog/353062
可能还是有加载项目两次导致的,
检查一下是不是每个任务器都是同时执行两次, 如果只有它一个,那就检查是不是有地方重复调用了。
如果实在找不到原因,可以先建立一个静态布尔变量,任务进入之后就标记true,任务结束再改为false,为true时就直接结束任务,临时顶一下