关于Cron4jPlugin,只有在最开始跑了一次,后面每天就不跑了

在内网做了一个项目,搜集数据并上报集团,用runnable写好了任务

然后在配置文件的class中配置好了,如下:

Cron4jPlugin cp = new Cron4jPlugin();

cp.addTask("1 12 * * *",new TaskGetLrData());

me.add(cp);

这个任务在当天是有效的,但是从第二天开始,中午12点1分的任务就不执行了。

有人遇到这样的情况吗?

评论区

chance_xym

2020-05-17 15:43

版本是4.7

JFinal

2020-05-17 19:58

在被调度的第一行代码处做日志确认一下

chance_xym

2020-05-18 10:29

@JFinal 任务里一开始就有sysout输出,但是一直没有打印出来

JFinal

2020-05-18 12:28

@chance_xym sysout 不可靠, jfinal.com 官网的定时任务用的是插入数据库的方式:
// 每次调度启动时,向 task_run_log 写日志,用于检查调度的时间是否与预期的一致,避免出现 bug 却不知道
Record taskRunLog = new Record().set("taskName", "PageViewUpdateTask").set("createAt", new Date());
Db.save("task_run_log", taskRunLog);

事先建一个表:
task_run_log, 字段名有:id、taskName、createAt

注意:写日志代码一定要放在最前面,否则 task 运行如果有异常,这条日志就不会写入

我怀疑你的 task 已经被运行,但有异常,所以你察觉不到其已经运行。Cron4jPlugin 我用了好多年,从来没有碰到过问题

chance_xym

2020-05-18 17:20

@JFinal sysout我是放在任务的最前面的,但是控制台没有看到日志记录。我的项目就是纯粹跑这个定时任务的。还有,我现在还没部署到正式环境里,还是自己的开发环境在跑,用的devMode。这台开发机器,一段时间不用就会锁屏了,这个会有影响吗?win7电脑

chance_xym

2020-05-18 17:46

@JFinal 我发现我的开发环境的台式机过了30分钟会自动休眠。。坑爹的货

热门反馈

扫码入社