diff --git a/django_code/django_code/__init__.py b/django_code/django_code/__init__.py index e69de29..e31568a 100644 --- a/django_code/django_code/__init__.py +++ b/django_code/django_code/__init__.py @@ -0,0 +1,3 @@ +from .celery import app as celery_app + +__all__ = ("celery_app",) \ No newline at end of file diff --git a/django_code/django_code/celery.py b/django_code/django_code/celery.py new file mode 100644 index 0000000..c9d301f --- /dev/null +++ b/django_code/django_code/celery.py @@ -0,0 +1,8 @@ +import os +from celery import Celery + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_code.settings') + +app = Celery("django_code") +app.config_from_object("django.conf:settings", namespace="CELERY") +app.autodiscover_tasks() \ No newline at end of file diff --git a/django_code/django_code/settings.py b/django_code/django_code/settings.py index 63299e1..107ef30 100644 --- a/django_code/django_code/settings.py +++ b/django_code/django_code/settings.py @@ -124,3 +124,6 @@ STATIC_URL = 'static/' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # +# Celery settings +CELERY_BROKER_URL = "redis://localhost:6379" +CELERY_RESULT_BACKEND = "redis://localhost:6379" \ No newline at end of file diff --git a/django_code/stash_management/apps.py b/django_code/stash_management/apps.py index d811b69..b2611f7 100644 --- a/django_code/stash_management/apps.py +++ b/django_code/stash_management/apps.py @@ -5,6 +5,7 @@ from django.shortcuts import redirect #from jinja2 import Environment, FileSystemLoader from django.core.files import File from kubernetes import client, config +from celery import shared_task import time import random @@ -20,6 +21,7 @@ def form(request): def fapello(request): return render(request, 'fapello_form.html',{}) + def fapello_form(request): stash_folder = "/tmp/stash" name = request.GET.get('name') @@ -27,12 +29,36 @@ def fapello_form(request): url_suffix = request.GET.get('url_suffix') maximum_increment = int(request.GET.get('maximum_increment')) minimum_increment = request.GET.get('minimum_increment') + + increment_and_download.delay(minimum_increment=minimum_increment,maximum_increment=maximum_increment,url=url,url_suffix=url_suffix,stash_folder=stash_folder,name=name) + #return HttpResponse(minimum_increment, content_type="text/plain") + + # if minimum_increment == None: + # minimum_increment = 1 + # + # text_generated = "" + # + # for increment in range(minimum_increment,maximum_increment): + # if len(str(increment)) == 3: + # increment_generated ='0' + str(increment) + # elif len(str(increment)) == 2: + # increment_generated ='00' + str(increment) + # elif len(str(increment)) == 1: + # increment_generated ='000' + str(increment) + # + # + # urllib.request.urlretrieve(url+increment_generated+url_suffix, stash_folder+"/"+increment_generated+url_suffix) + # text_generated = "\n downloading for "+name+" "+url+increment_generated+url_suffix + text_generated = "successfully sent to celery" + return HttpResponse(text_generated, content_type="text/plain") +@shared_task() +def increment_and_download(minimum_increment,maximum_increment,url,url_suffix,stash_folder,name): if minimum_increment == None: minimum_increment = 1 text_generated = "" - + for increment in range(minimum_increment,maximum_increment): if len(str(increment)) == 3: increment_generated ='0' + str(increment) @@ -40,13 +66,11 @@ def fapello_form(request): increment_generated ='00' + str(increment) elif len(str(increment)) == 1: increment_generated ='000' + str(increment) - - + + urllib.request.urlretrieve(url+increment_generated+url_suffix, stash_folder+"/"+increment_generated+url_suffix) text_generated = "\n downloading for "+name+" "+url+increment_generated+url_suffix - return HttpResponse(text_generated, content_type="text/plain") - - + return text_generated def handle_survey_form(request): config.load_kube_config(config_file='/kubeconfig/config') v1 = client.BatchV1Api() diff --git a/requirements.txt b/requirements.txt index 6264872..ebbf256 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,3 +9,5 @@ pyyaml django-bootstrap-v5 jinja2 watchdog +celery +redis \ No newline at end of file