预发环境与生产环境共享数据库时定时任务重复执行问题解决
生活随笔
收集整理的這篇文章主要介紹了
预发环境与生产环境共享数据库时定时任务重复执行问题解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景:
為保證預發環境的真實性,預發與生產環境往往共享數據庫,在定時任務列表中,預發與生產環境都會從任務列表中獲取定時任務,然后執行,這會導致定時任務會執行重復。
解決方法:
在job中增加一個環境變量字段,如test,stg,prod等,當創建任務的時候獲取執行創建任務服務器的profile,根據profile插入到jod的上述字段中。定時任務執行時判斷任務是否符合執行機器的profile,符合則執行,不符合則不執行。
具體可執行操作:
1.在tomcat或者啟動腳本中加入vm參數,例如
-Dspring.profiles.active=stg? 2.代碼獲取profile的辦法示例: @Autowired
Environment env;
簡單的controller獲取如下:
@RequestMapping(value="/getProfiles")@ResponseBodypublic String getProfiles() throws ParseException {StringBuffer sb=new StringBuffer();String[] profiles= env.getActiveProfiles();for(String profile:profiles){sb.append(profile).append("\r\n");}return sb.toString();}?
?
?
?
轉載于:https://www.cnblogs.com/davidwang456/p/6839751.html
總結
以上是生活随笔為你收集整理的预发环境与生产环境共享数据库时定时任务重复执行问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis使用注解替代xml配置,动
- 下一篇: linux cmake编译源码,linu