Мне нужно реализовать zmq издателя в django и celery с redis как брокер. Но мой клиент ничего не получает.Внедрение zeromq издателя в django с сельдереем (Брокер redis)
tasks.py
from celery import task
import zmq
try:
context = zmq.Context()
publisher = context.socket(zmq.PUB)
publisher.bind('tcp://192.168.0.14:9997')
except:
pass
def app_delivery():
publisher.send("testid : I am a task ")
return "Passed"
@task.task(ignore_result=True)
def add():
print "I am going to push message "
return app_delivery()
views.py
from django.http import HttpResponse
from notification_core.tasks import add
def resp(request):
param = request.GET.get('param')
param = int(param)
i=0
while i<param:
add.delay()
i+=1
return HttpResponse("Done")
Тогда работающие работники, использующие command--
python manage_back.py celery worker --loglevel=info
Рабочие консоли Выходной
[2013-04-20 10:37:06,400: WARNING/PoolWorker-2] I am going to push message
[2013-04-20 10:37:06,400: INFO/MainProcess] Task notification_core.tasks.add[6d44bb48-799e-43dc-af3e-278c0db732c4] succeeded in 0.000511169433594s: 'Passed'
[2013-04-20 10:37:06,575: INFO/MainProcess] Got task from broker: notification_core.tasks.add[8a787b31-5375-4c05-9ddc-2fc66b54ee19]
[2013-04-20 10:37:06,575: WARNING/PoolWorker-3] I am going to push message
[2013-04-20 10:37:06,576: INFO/MainProcess] Task notification_core.tasks.add[8a787b31-5375-4c05-9ddc-2fc66b54ee19] succeeded in 0.000941038131714s: 'Passed'
[2013-04-20 10:37:06,751: INFO/MainProcess] Got task from broker: notification_core.tasks.add[d73ebcdf-9765-43f6-823a-ad03881afa50]
[2013-04-20 10:37:06,752: WARNING/PoolWorker-4] I am going to push message
[2013-04-20 10:37:06,752: INFO/MainProcess] Task notification_core.tasks.add[d73ebcdf-9765-43f6-823a-ad03881afa50] succeeded in 0.000416040420532s: 'Passed'
zmq_client файл
import zmq
context = zmq.Context()
subscriber = context.socket(zmq.SUB)
subscriber.connect('tcp://192.168.0.14:9997')
subscriber.setsockopt(zmq.SUBSCRIBE, "testid")
while True:
message = subscriber.recv()
print "=========="
print message
print "=========="
я не получаю никакого вывода в клиенте, нужны некоторые предложения.
начало с удаления попытки, кроме прохода :) –