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 我用了好多年,从来没有碰到过问题
2020-05-15 10:26
@chcode 这个与空合操作还不同, 空合是对 "是否为 null" 起作用
而这位同学的建议是对 "是否为 true" 起作用
2020-05-14 10:42
@i++ RedisPlugin 可以使用 Redis.addCache(....) 事先放入自己的 Cache 继承类,完全接管原有功能
2020-05-14 10:01
@i++ 此外 ehcache 的集群还可以仅仅通过修改 ehcache.xml 配置就可以实现,无需改动 jfinal 源码,也无需继承扩展
2020-05-14 09:56
@i++ Cache 类无法直接获取,一般是通过 CacheKit.use() 或者 CacheKit.put(...) 来间接引用的 Cache,所有继承扩展是可以的
况且加集群功能根本不需要继承扩展,只需要通过 CacheKit.getCacheManager() 得到 CacheManager,往里头添加 ehcache 的监听器实现缓存同步就可以了
这里对 ehcache 做缓存同步,不要做成数据多节点复制,而是做成某节点数据有变化则发广播让其它节点 remove 掉缓存数据,让下载读取的时候去数据库读
参考 oschina 的 j2cache 中对于 ehcache 广播用法:
https://www.oschina.net/p/j2cache
https://v.youku.com/v_show/id_XNzAzMTY5MjUy.html