Skip to content

Commit 87b4cbb

Browse files
author
Jason Allum
committed
Changed over to a shared context; Creating two contexts is problematic on Ubuntu (currently).
1 parent bdd2b30 commit 87b4cbb

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

django_ztask/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@
88
__contact__ = "[email protected]"
99
__homepage__ = "http://github.com/dmgctrl/django-ztask"
1010
__docformat__ = "restructuredtext"
11-
__license__ = "BSD (3 clause)"
11+
__license__ = "BSD (3 clause)"
12+
13+
import zmq
14+
context = zmq.Context()

django_ztask/decorators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ def wrapper(func):
1212
logger = logging.getLogger('ztaskd')
1313
logger.info('Registered task: %s' % function_name)
1414

15-
context = zmq.Context()
16-
socket = context.socket(zmq.DOWNSTREAM)
15+
from django_ztask import context
16+
socket = context.socket(zmq.PUSH)
1717
socket.connect(settings.ZTASKD_URL)
1818
@wraps(func)
1919
def _func(*args, **kwargs):

django_ztask/management/commands/ztaskd.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.utils import autoreload
33
#
44
from django_ztask.conf import settings
5+
from django_ztask import context
56
#
67
from optparse import make_option
78
import sys
@@ -20,20 +21,18 @@ class Command(BaseCommand):
2021
help = 'Start the ztaskd server'
2122

2223
def handle(self, *args, **options):
23-
self._setup_logger(options.get('logfile', None), options.get('loglevel', 'info'))
24+
socket = context.socket(zmq.PULL)
25+
socket.bind(settings.ZTASKD_URL)
26+
2427
use_reloader = options.get('use_reloader', True)
28+
self._setup_logger(options.get('logfile', None), options.get('loglevel', 'info'))
29+
self.logger.info("%sServer started on %s." % ('Development ' if use_reloader else '', settings.ZTASKD_URL))
2530
if use_reloader:
26-
autoreload.main(self._handle)
31+
autoreload.main(lambda: self._handle(socket))
2732
else:
28-
self._handle()
33+
self._handle(socket)
2934

30-
def _handle(self):
31-
context = zmq.Context()
32-
socket = context.socket(zmq.UPSTREAM)
33-
socket.setsockopt(zmq.HWM, 64)
34-
socket.bind(settings.ZTASKD_URL)
35-
36-
self.logger.info("ztaskd development server started on %s." % (settings.ZTASKD_URL))
35+
def _handle(self, socket):
3736
cache = {}
3837
while True:
3938
function_name = None
@@ -54,7 +53,6 @@ def _handle(self):
5453
function = getattr(sys.modules[module_name], member_name)
5554
cache[function_name] = function
5655
function(*args, **kwargs)
57-
self.logger.info('Successfully called %s' % function_name)
5856
except Exception, e:
5957
self.logger.error('Error calling %s. Details:\n%s' % (function_name, e))
6058
traceback.print_exc(e)

0 commit comments

Comments
 (0)