Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2011 14:33:14

LestatCheb
От:
Зарегистрирован: 2009-06-09
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

django, celery, rabbitmq, amqplib, python socket

Здравствуйте, кто-нибудь использует в работе Celery + RabbitMQ?

начал профилировать, и увидел что больше всех теперь уходит время не на postgresql,
а на транспорт amqp-серверу:

         758457 function calls (654850 primitive calls) in 4.976 seconds

Ordered by: internal time, call count

ncalls tottime percall cumtime percall filename:lineno(function)
588 2.525 0.004 2.525 0.004 /usr/lib/python2.7/site-packages/amqplib/client_0_8/transport.py:194(_read)
231 0.605 0.003 0.609 0.003 /usr/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py:42(execute)
13024 0.161 0.000 0.161 0.000 /usr/lib/python2.7/site-packages/jinja2/lexer.py:548(tokeniter)
......
......
собственно в amqplib все это дело тормозится на питоновском socket:

    def _read(self, n):
"""
Read exactly n bytes from the socket

"""
while len(self._read_buffer) < n:
s = self.sock.recv(65536)
if not s:
raise IOError('Socket closed')
self._read_buffer += s

result = self._read_buffer[:n]
self._read_buffer = self._read_buffer[n:]

return result
вообще странно что асинхронные задачи celery
такие как

from celery.decorators import task

@task
def test_task():
return 1+1
и вызов их

    test_task.delay()
приводят к такой задержке…

или тут можно как-нибудь питоновский socket пропатчить для non-blocking режима?


спасибо!



Отредактировано (Апрель 21, 2011 15:13:26)

Офлайн

#2 Апрель 21, 2011 20:50:33

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

django, celery, rabbitmq, amqplib, python socket

я использую, но мне это не критично :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version