2
2
from django .utils import autoreload
3
3
#
4
4
from django_ztask .conf import settings
5
+ from django_ztask import context
5
6
#
6
7
from optparse import make_option
7
8
import sys
@@ -20,20 +21,18 @@ class Command(BaseCommand):
20
21
help = 'Start the ztaskd server'
21
22
22
23
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
+
24
27
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 ))
25
30
if use_reloader :
26
- autoreload .main (self ._handle )
31
+ autoreload .main (lambda : self ._handle ( socket ) )
27
32
else :
28
- self ._handle ()
33
+ self ._handle (socket )
29
34
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 ):
37
36
cache = {}
38
37
while True :
39
38
function_name = None
@@ -54,7 +53,6 @@ def _handle(self):
54
53
function = getattr (sys .modules [module_name ], member_name )
55
54
cache [function_name ] = function
56
55
function (* args , ** kwargs )
57
- self .logger .info ('Successfully called %s' % function_name )
58
56
except Exception , e :
59
57
self .logger .error ('Error calling %s. Details:\n %s' % (function_name , e ))
60
58
traceback .print_exc (e )
0 commit comments