From 7259e021baada4f804146aff7f39a3690b8f9e74 Mon Sep 17 00:00:00 2001 From: Jason Emerick Date: Tue, 7 May 2013 13:36:21 -0400 Subject: [PATCH] add pyres_schedule command and SCHEDULUER_PIDFILE setting --- django_pyres/conf.py | 9 ++++---- .../management/commands/pyres_scheduler.py | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 django_pyres/management/commands/pyres_scheduler.py diff --git a/django_pyres/conf.py b/django_pyres/conf.py index 6758ca7..d6668e1 100644 --- a/django_pyres/conf.py +++ b/django_pyres/conf.py @@ -1,16 +1,17 @@ from django.conf import settings #noqa from appconf import AppConf + class PyresConf(AppConf): HOST = "localhost:6379" PASSWORD = None - USE_QUEUE=True + USE_QUEUE = True WORKER_PIDFILE = None WORKER_INTERVAL = None WORKER_LOGFILE = None - WORKER_TIMEOUT= None - MANAGER_POOL_SIZE=2 - + WORKER_TIMEOUT = None + MANAGER_POOL_SIZE = 2 + SCHEDULUER_PIDFILE = None class Meta: prefix = 'pyres' diff --git a/django_pyres/management/commands/pyres_scheduler.py b/django_pyres/management/commands/pyres_scheduler.py new file mode 100644 index 0000000..fbc12e9 --- /dev/null +++ b/django_pyres/management/commands/pyres_scheduler.py @@ -0,0 +1,23 @@ +import logging +from django.core.management.base import BaseCommand +from django_pyres.conf import settings + +from optparse import make_option +from pyres.scheduler import Scheduler +from pyres import setup_logging, setup_pidfile + + +class Command(BaseCommand): + option_list = BaseCommand.option_list + ( + make_option('-l', '--log-level', dest='log_level', default='info', help='log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.'), + ) + help = 'Creates a pyres scheduler' + + def handle(self, **options): + log_level = getattr(logging, options['log_level'].upper(), 'INFO') + setup_logging(procname='pyres_scheduler', log_level=log_level, filename=None) + setup_pidfile(settings.PYRES_SCHEDULUER_PIDFILE) + Scheduler.run( + server=settings.PYRES_HOST, + password=settings.PYRES_PASSWORD, + )