Как действует rate_limit в сельдерее? - PullRequest
6 голосов
/ 25 сентября 2011

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

Тем не менее, в некоторых ситуациях одну из моих задач по сельдерею можно назвать многократно (я бы сказал, намного быстрее, чем она в среднем выполняется). Я хотел бы оценить его, чтобы он не потреблял много ресурсов, когда он на самом деле не так полезен.

Однако я хотел бы сначала понять, как применяется атрибут Celery.task.base.Task.rate_limit. Задания отклонены? Они задержаны и казнены позже?

Заранее спасибо!

1 Ответ

16 голосов
/ 20 июня 2012

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

Алгоритм корзины токенов не определяет ничего об отбрасывании пакетов (этовариант, но сельдерей этого не делает).

...