zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Quartz定时被二次触发的问题

定时 触发 quartz 二次 问题
2023-09-14 09:00:23 时间
其中 Host/ 告诉tomcat,在启动的时候加载webapps下的所有项目工程文件, Context/ 又让tomcat再加载了一遍(一般情况下配置 Context/ ,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两次。   Host/ 里面的改成 autoDeploy=
其中 Host/ 告诉tomcat,在启动的时候加载webapps下的所有项目工程文件, Context/ 又让tomcat再加载了一遍(一般情况下配置 Context/ ,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两次。


  Host/ 里面的改成 autoDeploy="false" deployOnStartup="false" 这样就可以避免tomcat服务器中自启动导致quartz定时任务被触发两次。(当然还可以按需求修改,毕竟每个项目的需求都不尽相同。)

    1. autodeploy属性值设置为false,如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用,设成false就不会。

    2.增加deployOnStartup="false",表示Tomcat服务器启动时, 不会自动发布appBase目录下所有的Web应用。

    这样的话,在tomcat启动时,不会自动发布appBase下的应用,启动后也不会自动发步appBase下的应用。
10w定时任务,如何高效触发超时 很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。
quartz很多人都会用,但需要配置cronExpression. 这个cronExpression很多技术人员都要配置,但很多情况,我们要知道这个cronExpression下次执行的时间是啥,让非技术人员很直观的看到下一个定时任务的执行时间。
quartz - misfire错过触发时机的处理 1. 引言 要弄清楚作业的misfire,首先需要了解几个重要的概念: 触发器超时 : 举个例子说明这个概念。比如调度引擎中有5个线程,然后在某天的下午2点 有6个任务需要执行,那么由于调度引擎中只有5个线程,所以在2点的时候会有5个任务会按照之前设定的时间正常执行,有1个任务因为没有线程资源而被延迟执行,这个就叫触发器超时。