diff --git a/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/Schema.java b/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/Schema.java index 8ffbbef01..d8d333187 100644 --- a/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/Schema.java +++ b/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/Schema.java @@ -74,23 +74,4 @@ public String toString() { '}'; } } - - public static class CreateOrUpdateEvent { - public int id; - public String uri; - - public CreateOrUpdateEvent() {} - - public CreateOrUpdateEvent(int id, String uri) { - this.id = id; - this.uri = uri; - } - @Override - public String toString() { - return "CreateOrUpdateEvent{" + - "id=" + id + - ", uri=" + uri + - '}'; - } - } } diff --git a/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/SchemaServiceImpl.java b/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/SchemaServiceImpl.java index ace40a66a..3632d398c 100644 --- a/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/SchemaServiceImpl.java +++ b/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/SchemaServiceImpl.java @@ -192,9 +192,8 @@ public Integer add(Schema schemaDTO){ } private void newOrUpdatedSchema(SchemaDAO schema) { - Schema.CreateOrUpdateEvent event = new Schema.CreateOrUpdateEvent(schema.id, schema.uri); - log.debugf("Push schema event for async schema synchronization: %s", event); - Util.registerTxSynchronization(tm, txStatus -> mediator.queueSchemaSync(event)); + log.debugf("Push schema event for async run schemas update: %d (%s)", schema.id, schema.uri); + Util.registerTxSynchronization(tm, txStatus -> mediator.queueSchemaSync(schema.id)); } private void verifyNewSchema(Schema schemaDTO) { diff --git a/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/ServiceMediator.java b/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/ServiceMediator.java index 615305a0c..4986cb212 100644 --- a/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/ServiceMediator.java +++ b/horreum-backend/src/main/java/io/hyperfoil/tools/horreum/svc/ServiceMediator.java @@ -2,7 +2,11 @@ import io.hyperfoil.tools.horreum.api.alerting.Change; import io.hyperfoil.tools.horreum.api.alerting.DataPoint; -import io.hyperfoil.tools.horreum.api.data.*; +import io.hyperfoil.tools.horreum.api.data.Action; +import io.hyperfoil.tools.horreum.api.data.Dataset; +import io.hyperfoil.tools.horreum.api.data.Run; +import io.hyperfoil.tools.horreum.api.data.Test; +import io.hyperfoil.tools.horreum.api.data.TestExport; import io.hyperfoil.tools.horreum.api.services.ExperimentService; import io.hyperfoil.tools.horreum.bus.AsyncEventChannels; import io.hyperfoil.tools.horreum.entity.data.ActionDAO; @@ -82,7 +86,7 @@ public class ServiceMediator { @OnOverflow(value = OnOverflow.Strategy.BUFFER, bufferSize = 10000) @Channel("schema-sync-out") - Emitter schemaEmitter; + Emitter schemaEmitter; private Map>> events = new ConcurrentHashMap<>(); @@ -168,15 +172,15 @@ void queueRunRecalculation(int runId) { } @Incoming("schema-sync-in") - @Blocking(ordered = false, value = "horreum.run.pool") + @Blocking(ordered = false, value = "horreum.schema.pool") @ActivateRequestContext - public void processSchemaSync(Schema.CreateOrUpdateEvent event) { - runService.onNewOrUpdatedSchema(event.id); + public void processSchemaSync(int schemaId) { + runService.onNewOrUpdatedSchema(schemaId); } @Transactional(Transactional.TxType.NOT_SUPPORTED) - void queueSchemaSync(Schema.CreateOrUpdateEvent event) { - schemaEmitter.send(event); + void queueSchemaSync(int schemaId) { + schemaEmitter.send(schemaId); } void dataPointsProcessed(DataPoint.DatasetProcessedEvent event) { diff --git a/horreum-backend/src/main/resources/application.properties b/horreum-backend/src/main/resources/application.properties index 7c8873e6a..d5cddc5cd 100644 --- a/horreum-backend/src/main/resources/application.properties +++ b/horreum-backend/src/main/resources/application.properties @@ -88,6 +88,7 @@ horreum.test-mode=false # thread pool sizes smallrye.messaging.worker.horreum.dataset.pool.max-concurrency=10 smallrye.messaging.worker.horreum.run.pool.max-concurrency=10 +smallrye.messaging.worker.horreum.schema.pool.max-concurrency=10 hibernate.jdbc.time_zone=UTC