From 14a2e7d185ed582176d730c95c293d7965b0a10f Mon Sep 17 00:00:00 2001 From: prance Date: Sun, 30 Jan 2022 16:32:09 +0100 Subject: [PATCH 1/2] add celery with task clearing task --- MUOR/MUOR/settings.py | 12 +++++++++++- MUOR/MUOR/signals.py | 10 ++++++---- MUOR/MUOR/tasks.py | 7 +++++++ MUOR/requirements.txt | 5 ++++- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 MUOR/MUOR/tasks.py diff --git a/MUOR/MUOR/settings.py b/MUOR/MUOR/settings.py index afc479883..422ec30bf 100644 --- a/MUOR/MUOR/settings.py +++ b/MUOR/MUOR/settings.py @@ -25,7 +25,7 @@ SECRET_KEY = 'django-insecure-t52#vo-k9ty*$@u9bf75hrkd#^o_)gadrz9$7w%xnkb-0#y!bi # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = ['django'] +ALLOWED_HOSTS = ['django', 'localhost'] # Application definition @@ -139,4 +139,14 @@ AUTH_USER_MODEL = "MUOR.Profile" AVAILABLE_PORTS_RANGE = (6000, 7000) +SESSION_EXPIRE_AT_BROWSER_CLOSE = True +SESSION_COOKIE_AGE = 60 * 60 +CELERY_BROKER_URL = 'redis+socket:///var/run/redis/redis-server.sock' +CELERY_TIMEZONE = "Europe/Warsaw" +CELERY_BEAT_SCHEDULE = { + 'daily_report': { + 'task': 'clear_sessions', + 'schedule': 60, + } +} diff --git a/MUOR/MUOR/signals.py b/MUOR/MUOR/signals.py index 10f734117..a2e424835 100644 --- a/MUOR/MUOR/signals.py +++ b/MUOR/MUOR/signals.py @@ -1,10 +1,11 @@ -from django.db.models.signals import post_save +from django.db.models.signals import post_save, pre_delete from django.dispatch import receiver from .DockerManager import DockerManager from .NGINXConfigurator import NGINXConfigurator from .models import Profile, Session from django.contrib.auth.signals import user_logged_in, user_logged_out from django.conf import settings +from django.contrib.sessions.models import Session as DjangoSession def get_sessions_data(): @@ -57,11 +58,11 @@ def profile_start_up(sender, user, request, **kwargs): NGINXConfigurator.refresh_config(get_sessions_data()) -@receiver(user_logged_out) -def profile_logged_out(sender, user, request, **kwargs): +@receiver(pre_delete, sender=DjangoSession) +def close_session(sender, instance, **kwargs): # Obtaining container_id try: - session = Session.objects.get(user=user) + session = Session.objects.get(sessionid=instance.session_key) container_id = session.container_id # Turn off and delete container @@ -70,6 +71,7 @@ def profile_logged_out(sender, user, request, **kwargs): # Delete session session.delete() + print("Closed session!") except Session.DoesNotExist: pass NGINXConfigurator.refresh_config(get_sessions_data()) diff --git a/MUOR/MUOR/tasks.py b/MUOR/MUOR/tasks.py new file mode 100644 index 000000000..50a478293 --- /dev/null +++ b/MUOR/MUOR/tasks.py @@ -0,0 +1,7 @@ +from celery import shared_task +from django.core import management + + +@shared_task(name="clear_sessions") +def clear_sessions(): + management.call_command('clearsessions') diff --git a/MUOR/requirements.txt b/MUOR/requirements.txt index 766194421..626cf2b62 100644 --- a/MUOR/requirements.txt +++ b/MUOR/requirements.txt @@ -1,3 +1,6 @@ Django django-crispy-forms -docker \ No newline at end of file +docker +celery +redis +django-redis From 7f10c506140b5d9c38efbba7ff55a264aaa93f85 Mon Sep 17 00:00:00 2001 From: prance Date: Sun, 30 Jan 2022 16:37:06 +0100 Subject: [PATCH 2/2] change loader from template to static html --- MUOR/MUOR/configs/loader.html | 51 +++++++++++++++++++++++++++++++++++ MUOR/MUOR/urls.py | 1 - MUOR/templates/loader.html | 13 --------- 3 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 MUOR/MUOR/configs/loader.html delete mode 100644 MUOR/templates/loader.html diff --git a/MUOR/MUOR/configs/loader.html b/MUOR/MUOR/configs/loader.html new file mode 100644 index 000000000..176f6703e --- /dev/null +++ b/MUOR/MUOR/configs/loader.html @@ -0,0 +1,51 @@ + + + + + + MultiUserOpenRefine} + + +
+
+
+
+
+ logo +

+ MultiUserOpenRefine

+
+

Your instance is getting + ready. Please wait...

+
+
+ Loading... +
+
+
+
+
+
+
+
+ + + + + + + + diff --git a/MUOR/MUOR/urls.py b/MUOR/MUOR/urls.py index 4a143369b..b4251c028 100644 --- a/MUOR/MUOR/urls.py +++ b/MUOR/MUOR/urls.py @@ -25,7 +25,6 @@ urlpatterns = [ path('admin/', admin.site.urls), path('', include('django.contrib.auth.urls')), path('signup/', SignUpView.as_view(), name='signup'), - path('loader/', TemplateView.as_view(template_name='loader.html'), name='loader'), path('welcome/', TemplateView.as_view(template_name='home.html'), name='home'), path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('images/favicon.ico'))), path('', views.home, name='home') diff --git a/MUOR/templates/loader.html b/MUOR/templates/loader.html deleted file mode 100644 index 6702a8658..000000000 --- a/MUOR/templates/loader.html +++ /dev/null @@ -1,13 +0,0 @@ - -{% extends 'base.html' %} - -{% block title %}Loader{% endblock %} - -{% block content %} -

Your instance is getting ready. Please wait...

-
-
- Loading... -
-
-{% endblock %} \ No newline at end of file