diff --git a/django/dkg/cancer/consumers.py b/django/dkg/cancer/consumers.py
new file mode 100644
index 0000000..57725fe
--- /dev/null
+++ b/django/dkg/cancer/consumers.py
@@ -0,0 +1,20 @@
+from django.http import HttpResponse
+from channels.handler import AsgiHandler
+
+
+def ws_message(message):
+ # ASGI WebSocket packet-received and send-packet message types
+ # both have a "text" key for their textual data.
+ message.reply_channel.send({
+ "text": message.content['text'],
+ })
+
+
+def ws_connect(message):
+ message.reply_channel.send({
+ "text": 'connected',
+ })
+
+
+def ws_disconnect(message):
+ print message.content
diff --git a/django/dkg/cancer/json_api/endpoints.py b/django/dkg/cancer/json_api/endpoints.py
index 101dd27..429334c 100644
--- a/django/dkg/cancer/json_api/endpoints.py
+++ b/django/dkg/cancer/json_api/endpoints.py
@@ -47,13 +47,24 @@ def train(request):
persistence.save_batch(request_body['articles'])
articles_with_keywords_and_probas = persistence.load_data()
- # retrain model and save to disk
- cancer.model_api.model.train_model(
+ import concurrent.futures
+ executor = concurrent.futures.ThreadPoolExecutor(max_workers=4)
+ # retrain model and save to disc
+ training_future = executor.submit(
+ cancer.model_api.model.train_model,
articles_with_keywords_and_probas,
django.conf.settings.MODEL_PATH,
django.conf.settings.LABEL_CODES_PATH
)
+ def meh(future):
+ print future.result()
+ return 1
+
+ training_future.add_done_callback(meh)
+
+ # TODO: send notification (ws) to client, that model training is done
+
return HttpResponse(status=200)
diff --git a/django/dkg/cancer/routing.py b/django/dkg/cancer/routing.py
new file mode 100644
index 0000000..00e6f76
--- /dev/null
+++ b/django/dkg/cancer/routing.py
@@ -0,0 +1,8 @@
+from channels.routing import route
+from cancer.consumers import ws_message, ws_connect, ws_disconnect
+
+channel_routing = [
+ route("websocket.receive", ws_message),
+ route("websocket.connect", ws_connect),
+ route("websocket.disconnect", ws_disconnect),
+]
diff --git a/django/dkg/cancer/templates/cancer/bs.html b/django/dkg/cancer/templates/cancer/bs.html
index a36fe36..0805aa0 100644
--- a/django/dkg/cancer/templates/cancer/bs.html
+++ b/django/dkg/cancer/templates/cancer/bs.html
@@ -25,6 +25,19 @@
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous">
+