SpringBoot项目发布到Tomcat,定时任务同步执行了两次?

最近,在实习的时候,搞一个关于备份数据库中的定时任务,但是,不知道为什么,它每个任务执行了两次。好家伙,直接困了我两天,差点直接提桶跑路。。。
就在今天,我灵机一动,因为我之前的话是将生成的war包放在Tomcat中运行的,这次我生成jar包运行试一下,居然,只执行了一次。通过查看日志,在定时任务中,整个定时任务同时执行了两次,时间相差 0.0001秒。
感谢网络,第一次试错,原来的项目的pom文件中,没有将SpringBoot-Web自带的Tomcat移除掉。。。。
移除它,如下所示:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

接着,竟然还是一样,还是执行了两次定时任务。
第二次真正解决:
通过在Tomcat的conf目录server.xml文件下查看部署项目的
配置。原来,tomcat扫描了两次,第一次先是扫描了appBase=“webapps”,之后又去加载项目war包的绝对路径:
docBase="…/…war";我们可以将appBase置为空来解决.

<Host name="localhost"  appBase="" unpackWARs="true" autoDeploy="true">
			
    <Context docBase="D:\java develop software\apache-tomcat-8.5.37\webapps\xf_platform_mobile" path="/" reloadable="true" />
 
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 
</Host>

おすすめ

転載: blog.csdn.net/qq_42582773/article/details/121237499