2012-06-24 3 views
0

Я использую Django-Celery + rabbitmq для выполнения некоторых задач asyn, я определяю очередь sendmail для выполнения задачи отправки электронной почты, отправка почты инициируется определенной задачей (у этой задачи есть собственная очередь) но теперь я столкнулся с проблемой, после завершения конкретной задачи, почта иногда отправляется сразу, иногда требуется 5-20 минут. Я хочу знать причину, вызвавшую причину.django celery rabbitmq execute delay

Django-celery упакует имя задачи и param как сообщение в rabbitmq при вызове task.delay().

Я хочу знать, когда сообщение перейдет на rabbitmq, но использовать инструмент управления веб-сайтом можно только для просмотра общих сообщений, не видно деталей каждого сообщения, особенно времени, когда сообщение достигло. Журнал Django-сельдерей может видеть только работу, полученную от времени брокера, и выполнять задание time.I хочу знать все соответствующие моменты времени, чтобы убедиться, какой шаг времени основного потребления.

ответ

1

Django-Celery делает (я считаю) данные задачи задания для каждой задачи. Когда вы синхронизируете свою базу данных, она разбивает кучу таблиц мониторинга, доступных через администратора. Однако, чтобы эти задачи записывались в эти таблицы, вам нужно запустить программу celerycam в контексте django (python ./manage.py celerycam). Программа celerycam будет выполнять «моментальные снимки» ваших задач каждую секунду или около того (по умолчанию) и записывать информацию о них. Другим полезным инструментом для мониторинга является программа ceralmon (которая также должна работать в контексте django). Это программа ncurses командной строки, которая сообщает информацию о задачах в реальном времени по мере их возникновения. Наконец, у rabbitmqctrl есть куча вариантов, которые могут помочь в мониторинге.

Это особенно полезная страница в документации: http://celery.github.com/celery/userguide/monitoring.html

Во всяком случае, это то, что я использую, чтобы контролировать свои задачи при использовании сельдерея.

Смежные вопросы