Как стать автором
Обновить

Комментарии 27

А тег mongodb, зачем?
Так бекенд — mongodb в примере.
Ага, как-то пропустил. Это несомненно круто.
Спасибо.
А в чем заключается распределенность очереди заданий? Пока что я вижу централизованный учет и раздачу их.
Распределенность в плане выполнения заданий, то есть они делятся между запущенными воркерами, однако если вы хотите чтобы раздача заданий была отказоустойчивой, есть смысл использовать RabbitMQ
Не флейму для, а интереса ради, а gearman.org/ не рассматривали? Вроде как значительно более стабильный и проверенный вариант
Нет, не рассматривали. В будущем планируем перевести раздачу очередей на AMQP(RabbitMQ), а это тоже промышленное решение.
Instagram перешел с gearmand на celery.
Мы, кстати, у себя гирман используем очень и очень много где и тоже подумываем переходить, привысоких нагрузках гирман начинает подтупливать, а именно выполняя одну очередь, забивает на другие полностью, и даже приоритеты задач не помогают.
оффтопик:
интересно, сколько человек тянут такой проект?
это я про конструктор сайтов
4 пока
Четыре программиста или админ, дизайнер, программист, менеджер?
всего 4, так что второе.
Есть ли математические применения этой штуки? Например, если у меня есть кластер и суперкомпьютер, могу я что-то для себя сложное на ней посчитать?
В принципе почему бы нет, вопрос в том что это даст в плане выигрыша в производительности. Надо смотреть особенности задачи.
> delayed_function.apply_async(args=[id], countdown=300) # Будет запущена через 300 секунд

как-нибудь проверить можно, есть ли данное задание в очереди на выполнение? отменить его можно?
Да, можно:
r = delayed_function.apply_async(args=[id], countdown=300)
r.status — Если PENDING, значит еще ждет

Отменить можно:
celery.task.control.revoke(task_id, destination=None, **kwargs)
Очередной RabbitMQ ради RabbitMQ.
Могли поюзать tailable cursors в MongoDB для очередей =) Было прикольнее чем RabbitMQ.
Переменную r можно прогнать через cPickle, положить значение в кеш и аяксом опрашивать статус задания.

Ой-ой-ой-ой!.. не надо такие опасности советовать людям! Уточняйте четко, что значение cPickle надо хранить только на стороне сервера, а опрашивать аяксом только по какому-нибудь связному идентификатору, а то ведь люди будут передавать клиенту результат cPickle и по нему опрашивать. А там:

docs.python.org/library/pickle.html
Да, конечно лучше в кеш только id класть, а вобще по ситуации смотреть надо.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Почему же вы не вставили в пост этот прекрасный интернет-мем? :)

image
Спасибо, но уж поздновато статью менять)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий