From 71fa592f4b75b3a5a799c19e268206b7e5c3181e Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Wed, 29 Jul 2015 21:49:53 +0100 Subject: [PATCH] Fixed some celery stuff --- Dockerfile | 2 ++ dss/celeryconf.py | 9 +++++++-- dss/settings.py | 1 + requirements.txt | 1 + run_celery.sh | 2 +- spa/tasks.py | 15 +++++++++------ 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9c07f99..9179e4b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,8 @@ RUN mkdir /files RUN mkdir /files/static RUN mkdir /files/media RUN mkdir /files/cache +RUN mkdir /files/cache/mixes +RUN mkdir /files/cache/waveforms RUN mkdir /files/tmp WORKDIR /code diff --git a/dss/celeryconf.py b/dss/celeryconf.py index 22abefa..dcd124d 100644 --- a/dss/celeryconf.py +++ b/dss/celeryconf.py @@ -1,17 +1,22 @@ from __future__ import absolute_import import os +import logging from celery import Celery +logger = logging.getLogger('dss') + # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dss.settings') from django.conf import settings - +print 'Connecting to celery app' app = Celery('dss') +print 'Connected' # Using a string here means the worker will not have to # pickle the object when using Windows. app.config_from_object('django.conf:settings') -app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) \ No newline at end of file +app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) +print 'Discovered tasks' diff --git a/dss/settings.py b/dss/settings.py index 40e662e..6dc6b9d 100755 --- a/dss/settings.py +++ b/dss/settings.py @@ -107,6 +107,7 @@ INSTALLED_APPS = ( 'django_gravatar', 'corsheaders', 'sorl.thumbnail', + 'djcelery', 'spa', 'gunicorn', 'spa.signals', diff --git a/requirements.txt b/requirements.txt index e3dd54e..68682e5 100755 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ django-dbbackup django-user-agents south redis +django-celery sorl-thumbnail diff --git a/run_celery.sh b/run_celery.sh index 4af3a17..fe41a9e 100755 --- a/run_celery.sh +++ b/run_celery.sh @@ -1,2 +1,2 @@ #!/bin/sh -su -m djworker -c "sleep 3 && celery worker -A dss.celeryconf -Q default" +su -m djworker -c "python manage.py celeryd" \ No newline at end of file diff --git a/spa/tasks.py b/spa/tasks.py index c2bfeaa..ad1fffb 100755 --- a/spa/tasks.py +++ b/spa/tasks.py @@ -1,6 +1,8 @@ import shutil from celery.task import task import os +import logging + from core.utils.cdn import upload_to_azure from spa.signals import waveform_generated_signal @@ -12,29 +14,30 @@ except ImportError: from core.utils.waveform import generate_waveform from dss import settings +logger = logging.getLogger('dss') @task(time_limit=3600) def create_waveform_task(in_file, uid): out_file = os.path.join(settings.CACHE_ROOT, 'waveforms/%s.png' % uid) - print "Creating waveform \n\tIn: %s\n\tOut: %s" % (in_file, out_file) + logger.info("Creating waveform \n\tIn: %s\n\tOut: %s" % (in_file, out_file)) generate_waveform(in_file, out_file) if os.path.isfile(out_file): - print "Waveform generated successfully" + logger.info("Waveform generated successfully") waveform_generated_signal.send(sender=None, uid=uid) return out_file else: - print "Outfile is missing" + logger.error("Outfile is missing") @task(timse_limit=3600) def upload_to_cdn_task(in_file, filetype, uid, container_name): source_file = os.path.join(settings.CACHE_ROOT, '{0}/{1}.{2}'.format(container_name, uid, filetype)) - print "Sending {0} to azure".format(uid) + logger.info("Sending {0} to azure".format(uid)) try: upload_to_azure(source_file, filetype, uid, container_name) return source_file except Exception, ex: - print "Unable to upload: {0}".format(ex.message) + logger.error("Unable to upload: {0}".format(ex.message)) @task def update_geo_info_task(ip_address, profile_id): @@ -46,5 +49,5 @@ def update_geo_info_task(ip_address, profile_id): country = g.country(ip) print "Updated user location" except Exception, e: - print e.message + logger.exception(e) pass