From a94a0b0fe8310428b441972fdb2b8f0161075543 Mon Sep 17 00:00:00 2001 From: Kirosbr Date: Fri, 12 Apr 2024 15:12:27 +0200 Subject: [PATCH] modif cron --- Dockerfile | 7 ++++++- Reskreen/settings.py | 8 ++++++-- crons_jobs | 2 ++ mycaldav/apps.py | 6 +----- mycaldav/cron.py | 10 +++++++--- mycaldav/urls.py | 3 +-- 6 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 crons_jobs diff --git a/Dockerfile b/Dockerfile index a08ea9a..6098a45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,12 @@ FROM python:3.9 WORKDIR /app COPY . . -RUN pip install --no-cache-dir -r requirements.txt +COPY crons_jobs /etc/cron.d/django_crons_jobs +RUN apt-get update && apt-get install -y cron +RUN chmod 0644 /etc/cron.d/django_crons_jobs && crontab /etc/cron.d/django_crons_jobs && touch /var/log/cron.log && tail -f /var/log/cron.log + + +RUN apt update && apt install cron && pip install --no-cache-dir -r requirements.txt RUN python manage.py makemigrations && python manage.py migrate diff --git a/Reskreen/settings.py b/Reskreen/settings.py index 915df8f..191bf08 100644 --- a/Reskreen/settings.py +++ b/Reskreen/settings.py @@ -39,6 +39,7 @@ CSRF_TRUSTED_ORIGINS = ['https://rh.ambulance-clerc.ch'] LOGIN_REDIRECT_URL = '/admin' INSTALLED_APPS = [ 'jazzmin', + 'django_cron', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', @@ -54,8 +55,7 @@ INSTALLED_APPS = [ 'rangefilter', 'django.contrib.admin', 'carnet_rouge.apps.CarnetRougeConfig', - 'django_summernote', - 'django-cron', + 'django_summernote', ] INSTALLED_APPS += ( 'apilog.apps.ApilogConfig',) @@ -135,6 +135,10 @@ MIDDLEWARE = [ 'django.middleware.locale.LocaleMiddleware', ] +CRON_CLASSES = [ + "mycaldav.cron.InitTaskSync", +] + CORS_ALLOWED_ORIGINS = [ "http://33.144.144.13:4173", "http://33.144.144.13:5173", diff --git a/crons_jobs b/crons_jobs new file mode 100644 index 0000000..36261e0 --- /dev/null +++ b/crons_jobs @@ -0,0 +1,2 @@ +# Exécute la tâche cron toutes les heures +*/5 * * * * cd /app && python manage.py runcrons diff --git a/mycaldav/apps.py b/mycaldav/apps.py index 2495451..e2d3c1a 100644 --- a/mycaldav/apps.py +++ b/mycaldav/apps.py @@ -1,11 +1,7 @@ from django.apps import AppConfig -from mycaldav.cron import InitTaskSync class CaldavConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'mycaldav' - - def ready(self): - my_cron_job = InitTaskSync() - my_cron_job.start() + diff --git a/mycaldav/cron.py b/mycaldav/cron.py index 1c9bdd0..6283bf0 100644 --- a/mycaldav/cron.py +++ b/mycaldav/cron.py @@ -1,15 +1,19 @@ from django_cron import CronJobBase, Schedule +import django + -from mycaldav.models import caldav_sync_manager -from mycaldav.settings import CALDAV_URL,CALDAV_USER,CALDAV_PASSWORD class InitTaskSync(CronJobBase): - RUN_AT_TIMES = [time(hour=7), time(hour=19)] + RUN_AT_TIMES = ['07:00', '19:00'] schedule = Schedule(run_at_times=RUN_AT_TIMES,) code = 'mycaldav.init_sync_task' # Un code unique pour votre tâche cron def do(self): + django.setup() + + from mycaldav.models import caldav_sync_manager + from mycaldav.settings import CALDAV_URL,CALDAV_USER,CALDAV_PASSWORD o_caldav_sync_management = caldav_sync_manager() o_caldav_sync_management.init_caldav(caldav_url=CALDAV_URL, caldav_user=CALDAV_USER, caldav_password=CALDAV_PASSWORD) o_caldav_sync_management.init_task_management() diff --git a/mycaldav/urls.py b/mycaldav/urls.py index d30e905..6aff7f8 100644 --- a/mycaldav/urls.py +++ b/mycaldav/urls.py @@ -7,8 +7,7 @@ from . import views app_name = "mycaldav" urlpatterns = [ path('task', views.view_task_caldav, name='view_task_caldav'), - path('task/edit', views.view_task_edit_caldav, name='view_task_edit_caldav'), - path('task/init', views.view_init_sync_management, name='view_init_sync_management'), + path('task/edit', views.view_task_edit_caldav, name='view_task_edit_caldav'), path('vhc', views.view_vhc_caldav, name='view_vhc_caldav'), path('vhc/edit', views.view_vhc_edit_caldav, name='view_vhc_edit_caldav'), path('rh', views.view_rh_caldav, name='view_rh_caldav'),