Посты с тэгом celery


[Перевод] Celery: лучшие практики


Если вы работаете с Django, то на некотором этапе разработке вам может понадобиться фоновая обработка долго выполняющихся задач. Возможно, что для такого рода задач вы используете какой-либо инструмент для управления очередями задач. Celery — один из самых популярных проектов для решения подобных задач в мире python и Django на данный момент, но есть и другие проекты для этой цели.

Пока я работал над некоторыми проектами, использующими Celery для управления очередями задач, выявились некоторые лучшие практики, которые я решил задокументировать. Впрочем это громкие слова для того, что я думаю о правильном подходе к решению подобных задач, а также о некоторых недостаточно используемых возможностях, которые предлагает сообщество проекта Celery.
Читать дальше →


[Перевод] Celery: лучшие практики


Если вы работаете с Django, то на некотором этапе разработке вам может понадобиться фоновая обработка долго выполняющихся задач. Возможно, что для такого рода задач вы используете какой-либо инструмент для управления очередями задач. Celery — один из самых популярных проектов для решения подобных задач в мире python и Django на данный момент, но есть и другие проекты для этой цели.

Пока я работал над некоторыми проектами, использующими Celery для управления очередями задач, выявились некоторые лучшие практики, которые я решил задокументировать. Впрочем это громкие слова для того, что я думаю о правильном подходе к решению подобных задач, а также о некоторых недостаточно используемых возможностях, которые предлагает сообщество проекта Celery.
Читать дальше →


Анализ дружеских связей VK с помощью Python. Продолжение


В предыдущей статье мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую статью, и я не буду описывать все заново. Под хабракатом большие картинки и много текста.
Читать дальше →


Celery Task Queue

Очень часто возникают случае в работе одного большого сервиса, когда нужно выполнять какие-либо задачи, которые не входят в разряд или не могут быть выполнены в одном процессе работы сервера. Допустим, периодически отсылать те или иные уведомления, проверять задачи, чистить базу данных от мусора и тому подобное. Конечно, же, для этих целей может подойти и стандартный Cron. А если проект мега-огромный? А если нужно выполнять задачи на разных машинах? Куча подгружаемых скриптов, запускающихся синхронно мало кого устроят. 
Для этого и были придуманы распределенные очереди задач. 
А для Python есть отличная очередь Celery! 

Эта система может работать на нескольких машинах, поэтому для общений между ними нужен сервер очереди сообщений. А мы то ведь один уже знаем, поэтому его и будем использовать. :D

 



Высоконагруженные сайты и приложения на Python / Django (29 проектов)


Наша компания довольно давно занимается разработкой больших веб-приложений на Python / Django. В рунете крайне мало информации об этом замечательном языке программирования и фремворке на его основе. Мы решили исправить эту ошибку и рассказать о популярных высоконагруженных сайтах на этой технологии, а также дать много интересных технических подробностей. Для удобства сравнения сайтов между собой мы приводим еще и немного статистики к каждому из проектов. В целом сайтов на Python / Django, конечно, очень много в мире, мы охватим только наиболее интересные по нашему мнению.

Небольшая таблица известных проектов (на основе данных http://builtwith.com/), кликабельно:
Читать дальше →


Python Meetup: ноябрьская встреча




В конце ноября в Минске прошла очередная встреча Python Meetup. Четыре интереснейших доклада на около-python-овские темы, авторитетные спикеры. Кстати, впервые к нам приехал спикер не из Беларуси — это был Андрей Власовский, опытный докладчик из компании JetBrains.

В ноябрьском митапе мы рассмотрели опциональную типизацию в Python, асинхронное распределенное выполнение задач, введение в GIL и новый GIL, а также использование gevent для эмуляции высокой нагрузки.
Видео всех докладов, как и ссылки на презентации, можно найти под катом.
Читать дальше →


[Из песочницы] Использование RabbitMQ в django проектах без Celery, и что нового в Celery 3.0

Думаю что большинство python программистов уже в какой-то степени знакомы с возможностями Celery. В 1-ой части я расскажу, как можно использовать RabbitMQ без celery, а во второй части — краткий обзор новых возможностей celery 3.0.
Об установке связки Django-Celery-RabbitMQ можно почитать тут.
Про использование RabbitMQ хорошо написано тут, и тут, ну и на сайте RabbitMQ.
Читать дальше →



Celery + Redis

Здравствуйте, друзья!

Порой встают задачи, когда нужно выполнять некоторые задания в фоновом режиме и получать результат их выполнения. Иногда задачи требуется распределять между серверами, но ещё чаще их необходимо ставить в очередь.

Для этого, и много другого существует замечательный проект Celery. Он позволяет без особого труда превращать обычные функции в т.н. tasks.

Task — это задача, которую можно поставить в очередь на выполнение. Celery выдаст конкретному таску уникальный ID и как только место в очереди освободится — примется за его выполнение.

После окончания работы задания его результат будет помещён в используемый бекенд.

Celery поддерживает несколько бекендов, включая RabbitMQ, Redis и даже базу данных.

RabbitMQ отлично подходит для этих целей — он относительно быстрый (написан на erland), легко конфигурируется, и главное — он даёт возможность гарантированного выполн



Запускаем тесты для проекта, который использует Django 1.3 иdjango-celery

В оффициальной документации django-celery есть раздел о том, как правильно настроить Celery для тестирования с Django проектом, также там упоминается и о возможности использовании специального тест раннера из пакета djcelery.

Так вот, если вы используете Django 1.3 - забудьте про эту возможность до лучших времен. Ее использование черевато DeprecationWarning'ами и не совсем понятной работой (например, у меня --failfast вообще не работал).

Причина кроется в сообщении из подобного DeprecationWarning'a:

/path/to/site-packages/django/test/simple.py:369: DeprecationWarning: The run_tests() test runner has been deprecated in favor of DjangoTestSuiteRunner.
  DeprecationWarning

Т.е., начиная с версии 1.3 мы должны забыть о функциях тест раннерах и использова



Django Framework / Асинхронные задания в Django c помощью Celery

Приветствую!
Думаю, большинство разработчиков Django слышали о Celery — системе асинхронного выполнения заданий, а многие даже активно её используют.

Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.

Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу