diff --git a/docker/docker-compose-api-worker.yml b/docker/docker-compose-api-worker.yml
index af4e99f104..d22a9a1f68 100644
--- a/docker/docker-compose-api-worker.yml
+++ b/docker/docker-compose-api-worker.yml
@@ -19,10 +19,10 @@ services:
- --collation-server=utf8mb4_bin
- --max-connections=1000
- --log_error_verbosity=2
- worker:
+ api:
deploy:
mode: replicated
- replicas: 2
+ replicas: 1
endpoint_mode: vip
resources:
limits:
@@ -39,45 +39,65 @@ services:
depends_on:
db:
condition: service_healthy
- api:
- condition: service_healthy
build:
dockerfile: docker/Dockerfile-bk8
context: ../
+ image: mojito:latest
+ pull_policy: never
links:
- db
+ ports:
+ - "8080:8080"
restart: always
environment:
SPRING_APPLICATION_JSON: '{
- "spring.flyway.enabled": "true",
- "l10n.flyway.clean" : "false",
- "spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
- "spring.jpa.hibernate.ddl-auto" : "none",
- "spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
- "spring.datasource.username" : "mojito",
- "spring.datasource.password" : "ChangeMe",
- "spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
- "spring.jpa.defer-datasource-initialization" : "false",
- "l10n.org.quartz.scheduler.enabled" : "true",
- "l10n.org.quartz.jobStore.useProperties" : "true",
- "l10n.org.quartz.scheduler.instanceId" : "AUTO",
- "l10n.org.quartz.jobStore.isClustered" : "true",
- "l10n.org.quartz.threadPool.threadCount" : "10",
- "l10n.org.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
- "l10n.org.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
- "l10n.org.quartz.jobStore.dataSource" : "myDS",
- "l10n.org.quartz.dataSource.myDS.provider" : "hikaricp",
- "l10n.org.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
- "l10n.org.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
- "l10n.org.quartz.dataSource.myDS.user" : "mojito",
- "l10n.org.quartz.dataSource.myDS.password" : "ChangeMe",
- "l10n.org.quartz.dataSource.myDS.maxConnections" : "12",
- "l10n.org.quartz.dataSource.myDS.validationQuery" : "select 1"
- }'
- api:
+ "spring.flyway.enabled": "true",
+ "l10n.flyway.clean" : "false",
+ "spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
+ "spring.jpa.hibernate.ddl-auto" : "none",
+ "spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "spring.datasource.username" : "mojito",
+ "spring.datasource.password" : "ChangeMe",
+ "spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
+ "spring.jpa.defer-datasource-initialization" : "false",
+ "l10n.org.quartz.scheduler.enabled" : "false",
+ "l10n.org.multi-quartz.enabled" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.useProperties" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.scheduler.instanceId" : "AUTO",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.isClustered" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.threadPool.threadCount" : 10,
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.dataSource" : "myDS",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.provider" : "hikaricp",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.user" : "mojito",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.password" : "ChangeMe",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.maxConnections" : 12,
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.validationQuery" : "select 1",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.useProperties" : "true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.scheduler.instanceId" : "AUTO",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.isClustered" : "true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.threadPool.threadCount" : 5,
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.dataSource" : "myDS",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.provider" : "hikaricp",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.user" : "mojito",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.password" : "ChangeMe",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.maxConnections" : 12,
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.validationQuery" : "select 1",
+ "l10n.assetExtraction.quartz.schedulerName" : "lowPriority",
+ "logging.level.com.box.l10n.mojito.quartz.QuartzPollableTaskScheduler" : "DEBUG",
+ "logging.level.com.box.l10n.mojito.service.repository.statistics.RepositoryStatisticsJob" : "DEBUG"
+ }'
+ worker:
deploy:
mode: replicated
- replicas: 1
+ replicas: 2
endpoint_mode: vip
resources:
limits:
@@ -94,38 +114,55 @@ services:
depends_on:
db:
condition: service_healthy
- build:
- dockerfile: docker/Dockerfile-bk8
- context: ../
+ api:
+ condition: service_healthy
+ image: mojito:latest
+ pull_policy: never
links:
- db
- ports:
- - "8080:8080"
restart: always
environment:
SPRING_APPLICATION_JSON: '{
- "spring.flyway.enabled": "true",
- "l10n.flyway.clean" : "false",
- "spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
- "spring.jpa.hibernate.ddl-auto" : "none",
- "spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
- "spring.datasource.username" : "mojito",
- "spring.datasource.password" : "ChangeMe",
- "spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
- "spring.jpa.defer-datasource-initialization" : "false",
- "l10n.org.quartz.scheduler.enabled" : "false",
- "l10n.org.quartz.jobStore.useProperties" : "true",
- "l10n.org.quartz.scheduler.instanceId" : "AUTO",
- "l10n.org.quartz.jobStore.isClustered" : "true",
- "l10n.org.quartz.threadPool.threadCount" : "10",
- "l10n.org.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
- "l10n.org.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
- "l10n.org.quartz.jobStore.dataSource" : "myDS",
- "l10n.org.quartz.dataSource.myDS.provider" : "hikaricp",
- "l10n.org.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
- "l10n.org.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
- "l10n.org.quartz.dataSource.myDS.user" : "mojito",
- "l10n.org.quartz.dataSource.myDS.password" : "ChangeMe",
- "l10n.org.quartz.dataSource.myDS.maxConnections" : "12",
- "l10n.org.quartz.dataSource.myDS.validationQuery" : "select 1"
- }'
+ "spring.flyway.enabled": "true",
+ "l10n.flyway.clean" : "false",
+ "spring.jpa.database-platform" : "org.hibernate.dialect.MySQLDialect",
+ "spring.jpa.hibernate.ddl-auto" : "none",
+ "spring.datasource.url" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "spring.datasource.username" : "mojito",
+ "spring.datasource.password" : "ChangeMe",
+ "spring.datasource.driverClassName" : "com.mysql.cj.jdbc.Driver",
+ "spring.jpa.defer-datasource-initialization" : "false",
+ "l10n.org.quartz.scheduler.enabled" : "true",
+ "l10n.org.multi-quartz.enabled" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.useProperties" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.scheduler.instanceId" : "AUTO",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.isClustered" : "true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.threadPool.threadCount" : 10,
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
+ "l10n.org.multi-quartz.schedulers.default.quartz.jobStore.dataSource" : "myDS",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.provider" : "hikaricp",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.user" : "mojito",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.password" : "ChangeMe",
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.maxConnections" : 12,
+ "l10n.org.multi-quartz.schedulers.default.quartz.dataSource.myDS.validationQuery" : "select 1",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.useProperties" : "true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.scheduler.instanceId" : "AUTO",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.isClustered" : "true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.threadPool.threadCount" : 5,
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.class" : "org.quartz.impl.jdbcjobstore.JobStoreTX",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.driverDelegateClass" : "org.quartz.impl.jdbcjobstore.StdJDBCDelegate",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.jobStore.dataSource" : "myDS",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.provider" : "hikaricp",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.driver" : "com.mysql.jdbc.Driver",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.URL" : "jdbc:mysql://db:3306/mojito?characterEncoding=UTF-8&useUnicode=true",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.user" : "mojito",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.password" : "ChangeMe",
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.maxConnections" : 12,
+ "l10n.org.multi-quartz.schedulers.lowPriority.quartz.dataSource.myDS.validationQuery" : "select 1",
+ "l10n.assetExtraction.quartz.schedulerName" : "lowPriority",
+ "logging.level.com.box.l10n.mojito.quartz.QuartzPollableTaskScheduler" : "DEBUG",
+ "logging.level.com.box.l10n.mojito.service.repository.statistics.RepositoryStatisticsJob" : "DEBUG"
+ }'
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6c0d98727d..57b16d0fa7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,8 @@
0.10.5
1.313
64.2
+ true
+ true
@@ -150,6 +152,34 @@
+
+ com.dkanejs.maven.plugins
+ docker-compose-maven-plugin
+ 4.0.0
+
+
+ ./docker/docker-compose-api-worker.yml
+
+ true
+ ${docker.compose.detached.mode}
+ ${docker.compose.remove.volumes}
+ true
+
+
+
+ api-worker-cluster-up
+
+ up
+
+
+
+ api-worker-cluster-down
+
+ down
+
+
+
+