我已经将一个springboot java应用程序进行了docker化,并在dev和测试环境中运行。
应用程序在application.yml中定义了一个cron作业计划.cron作业从ESB源获取数据并每10分钟更新一次数据库。
现在在开发环境中,我们没有问题,因为我们只有一个容器 在测试环境中,由于我们有多个容器,所有容器都试图在同一时间点执行任务,并且正在观察数据库锁定消息。 这也会影响应用程序性能。 Cron表达式低于
services:
esb:
applicationId: App-Dash
schedule:
job:
esbprocessing: 0 */5 * * * *
max_records: ${MAX_RECORDS:20}
我想到了以下可能的解决方案。 a)不同容器的不同Cron设置。 b)禁用某些容器的Cron。
但是,由于在不同的主机上创建和共享相同的docker镜像,如何在jar文件中编辑配置文件。
还有其他方法可以做到这一点。