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"> +