最近在做一个项目,项目中有多个模块,总体构架为SpringBoot +Quartz+其他(其他的不是重点啦)。
问题提出:
项目中会有Quartz做的定时任务模块,至于怎么使用Quartz网上一搜一大把,在这里不再细讲,
我要说的是,在开发和实际部署环境中如何避免定时任务重复执行?
例如:项目开发完成后已经部署到服务器,但是后期肯定是需要维护的呀,
那么问题来了,你在本地开发环境启动项目的时候,如果不做处理,呵呵。。。
结果可想而知,同一个定时任务,必然会执行两遍,如果是N个人维护这个程序,任务必将执行N+1次(服务器 一次)。
当然,前提是你们用的同一个数据库,大多数情况下为了偷懒(其实也是为了数据一致性啦),
程序猿一般会使用真实的服务器来运行程序。
那么如何在修改其他(非定时任务)模块时,在开发环境中关闭Quartz的定时任务呢?当然还不能影响服务器的任务执行。
在网上漂了大半天,也没有实际有效的解决办法,下面说说我的解决办法吧,如果你有更好的办法,也很希望你能告诉我,让我们共同进步。
首先,不同的环境我是有不同的配置文件的,主配置文件内容如下:
spring:
profiles:
# 生产环境
# active: prd
# 开发环境
active: dev
备注:我用的YM