From 5e93526d756becaeacec2e942351a93f95fcd3a9 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Wed, 14 Dec 2016 15:32:33 +0100 Subject: [PATCH] fix problem with akka + stop actors when received experiments results + add integration test draft --- .../java/eu/hbp/mip/akka/ExperimentActor.java | 12 ++++++------ src/main/resources/application.conf | 11 ++++++----- tests/integration/algorithmsFactory/test.sh | 15 ++++++++++++++- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/main/java/eu/hbp/mip/akka/ExperimentActor.java b/src/main/java/eu/hbp/mip/akka/ExperimentActor.java index 3c1e2b869..270af74d1 100644 --- a/src/main/java/eu/hbp/mip/akka/ExperimentActor.java +++ b/src/main/java/eu/hbp/mip/akka/ExperimentActor.java @@ -31,23 +31,23 @@ public class ExperimentActor extends UntypedActor { @Override public void onReceive(Object message) { - log.info("\n\n***** ExperimentActor received response from woken\n"); + log.info("ActorExperiment - onReceive method has been called"); UUID uuid = UUID.fromString(this.getSelf().path().name()); + log.info("\n\nExperimentActor received response from woken for UUID: \n"+uuid.toString()); if (message instanceof QueryResult) { QueryResult queryResult = (QueryResult) message; - log.info("received query result for : " + uuid.toString()); Experiment experiment = experimentRepository.findOne(uuid); if(experiment == null) { log.error("Experiment with UUID="+uuid+" not found in DB"); - // getContext().stop(getSelf()); + getContext().stop(getSelf()); return; } experiment.setResult(queryResult.data().get()); experiment.setFinished(new Date()); experimentRepository.save(experiment); log.info("Experiment "+ uuid +" updated (finished)"); - // getContext().stop(getSelf()); + getContext().stop(getSelf()); } else if (message instanceof QueryError) { @@ -57,7 +57,7 @@ public class ExperimentActor extends UntypedActor { if(experiment == null) { log.error("Experiment with UUID="+uuid+" not found in DB"); - // getContext().stop(getSelf()); + getContext().stop(getSelf()); return; } experiment.setHasServerError(true); @@ -66,7 +66,7 @@ public class ExperimentActor extends UntypedActor { experiment.setFinished(new Date()); experimentRepository.save(experiment); log.info("Experiment "+ uuid +" updated (finished)"); - // getContext().stop(getSelf()); + getContext().stop(getSelf()); } else { diff --git a/src/main/resources/application.conf b/src/main/resources/application.conf index 8f70ec42e..e2f86816c 100644 --- a/src/main/resources/application.conf +++ b/src/main/resources/application.conf @@ -2,7 +2,7 @@ akka { actor { provider = "akka.remote.RemoteActorRefProvider" } - loglevel = DEBUG + loglevel = INFO log-config-on-start = on debug { autoreceive = on @@ -12,19 +12,20 @@ akka { event-stream = on } remote { + maximum-payload-bytes = 10000000 bytes log-sent-messages = on log-received-messages = on enabled-transports = ["akka.remote.netty.tcp"] netty.tcp { + message-frame-size = 10000000b + send-buffer-size = 10000000b + receive-buffer-size = 10000000b + maximum-frame-size = 10000000b hostname = 127.0.0.1 # external (logical) hostname port = 8089 # external (logical) port bind-hostname = 0.0.0.0 # internal (bind) hostname bind-port = 8089 # internal (bind) port } - message-frame-size = 10000000b - send-buffer-size = 10000000b - receive-buffer-size = 10000000b - maximum-frame-size = 10000000b } } \ No newline at end of file diff --git a/tests/integration/algorithmsFactory/test.sh b/tests/integration/algorithmsFactory/test.sh index 2f75b0295..6e21e6285 100755 --- a/tests/integration/algorithmsFactory/test.sh +++ b/tests/integration/algorithmsFactory/test.sh @@ -1,4 +1,17 @@ #!/usr/bin/env bash +# Create some test models +echo "" +echo "Creating some models..." curl http://backend:8080/services/models -X POST -H "Content-Type: application/json" -d @model1.json -curl http://backend:8080/services/experiments -X POST -H "Content-Type: application/json" -d @expQuery1.json +curl http://backend:8080/services/models -X POST -H "Content-Type: application/json" -d @model2.json + +# Run some experiments +echo "" +echo "Run some experiments..." +response=$(curl -s http://backend:8080/services/experiments -X POST -H "Content-Type: application/json" -d @expQuery1.json) +echo "exp1: $response" +response=$(curl -s http://backend:8080/services/experiments -X POST -H "Content-Type: application/json" -d @expQuery2.json) +echo "exp2: $response" +response=$(curl -s http://backend:8080/services/experiments -X POST -H "Content-Type: application/json" -d @expQuery3.json) +echo "exp3: $response" \ No newline at end of file -- GitLab