2020-09-10 10:53
这个是 jfinal 提供的,核心代码在这里:
https://gitee.com/jfinal/jfinal-undertow/tree/master/src/main/java/com/jfinal/server/undertow/hotswap
注意,必须要对 java 的 ClassLoader 有深入理解,并且要实际做东西才能理解
为啥强调要实际做东西,这就好比卡中国芯片产业脖子的 "光刻机",全世界知道光刻机的原理,但只有荷兰 ASML 能做出最高端的
最后,由于 java 并不是动态语言,所以它的热加载仅用于开发,不要用于生产环境,历史上有几个大厂做过这方面努力,都失败了
2020-09-08 15:57
@hzh740053757 指令执行以后,要么会向 Writer 中输出数据,要么不输出,输出完以后的数据只会展现为字符串形式,是不可能再参与运算的
所以,指令扩展不是这么用的,你可以用表达式来做:
#xxx( Ag - Cu )
多看看文档中的多种扩展方式,都很方便
2020-09-05 19:20
@__ 你的表达式是每 5 分钟调度一次,应该是可以的,如果不行,改成下面的试试:
0-59/5 * * * *
也就是说,将第一个 * 号改成指定确切的时间范围
文档中有如下说明:
常见错误:cron4j在表达式中使用除号指定增加幅度时与linux稍有不同。例如在linux中表达式 10/3 * * * * 的含义是从第10分钟开始,每隔三分钟调度一次,而在cron4j中需要使用 10-59/3 * * * * 来表达。避免这个常见错误的技巧是:当需要使用除号指定增加幅度时,始终指定其范围。
基于上面的技巧,每隔2分钟调度一次的表达式为:0-59/2 * * * * 或者 */2 * * * * , 而不能是0/2 * * * *