2015-01-29 4 views
2

Я пытаюсь оценить ограничение задачи в сельдерее. Я создал для него простой проект. Но это не работает.ограничение скорости сельдерея не работает

Это моя программа:

celery.py

from __future__ import absolute_import 

from celery import Celery 
from celery.task.control import rate_limit 

app = Celery('proj', 
      broker='amqp://', 
      backend='amqp://', 
      include=['proj.tasks']) 

# Optional configuration, see the application user guide. 
app.conf.update(
    CELERY_TASK_RESULT_EXPIRES=3600, 
) 

# app.control.rate_limit('proj.tasks', '2/m') 
rate_limit("proj.tasks", "2/m") 
if __name__ == '__main__': 
    app.start() 

tasks.py структура

from __future__ import absolute_import 

from proj.celery import app 

@app.task 
def add(x, y): 
    return x + y 

проект:

. 
└── proj 
    ├── celery.py 
    ├── __init__.py 
    └── tasks.py 

работа:

from proj.tasks import * 
add.delay(1,2) 
add.delay(2,1) 
add.delay(2,2) 
add.delay(2,3) 
add.delay(3,4) 

выход:

[2015-01-29 16:41:08,331: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672// 
[2015-01-29 16:41:08,345: INFO/MainProcess] mingle: searching for neighbors 
[2015-01-29 16:41:09,359: INFO/MainProcess] mingle: all alone 
[2015-01-29 16:41:09,389: WARNING/MainProcess] [email protected] ready. 
[2015-01-29 17:14:02,423: ERROR/MainProcess] Rate limit attempt for unknown task proj.tasks 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/celery/worker/control.py", line 155, in rate_limit 
    state.app.tasks[task_name].rate_limit = rate_limit 
    File "/usr/local/lib/python2.7/dist-packages/celery/app/registry.py", line 26, in __missing__ 
    raise self.NotRegistered(key) 
NotRegistered: u'proj.tasks' 
[2015-01-29 16:41:11,683: INFO/MainProcess] Received task: proj.tasks.add[4ac66ad8-8e53-43e9-b9c5-3239f330f815] 
[2015-01-29 16:41:12,180: INFO/MainProcess] Received task: proj.tasks.add[3dd3167b-d621-4371-9254-af420060da14] 
[2015-01-29 16:41:12,601: INFO/MainProcess] Received task: proj.tasks.add[ae1f385c-db28-4d0c-b36c-b4c467c737e2] 
[2015-01-29 16:41:12,994: INFO/MainProcess] Received task: proj.tasks.add[6150984d-bce6-4cd7-871d-11b0c0909017] 
[2015-01-29 16:41:13,378: INFO/MainProcess] Received task: proj.tasks.add[58800ee8-f1fa-4913-b766-75c5e1b42c80] 
[2015-01-29 16:41:13,787: INFO/MainProcess] Received task: proj.tasks.add[3b5c1694-3a4c-499d-994d-02fdcb7c9e5c] 
[2015-01-29 16:41:14,147: INFO/MainProcess] Received task: proj.tasks.add[b01d4923-240d-4b50-8da4-7ee2bdf656e8] 
[2015-01-29 16:41:15,219: INFO/MainProcess] Received task: proj.tasks.add[6f68a52d-2e5c-428e-8a08-8b228ed87d3d] 
[2015-01-29 16:41:31,683: INFO/MainProcess] Received task: proj.tasks.add[2dfb1951-9842-4722-82c8-35a0ff6651c7] 
[2015-01-29 16:41:38,043: INFO/MainProcess] Received task: proj.tasks.add[93589fc2-5a5b-4d56-8564-f4cc986c7a19] 
[2015-01-29 16:41:38,465: INFO/MainProcess] Task proj.tasks.add[4ac66ad8-8e53-43e9-b9c5-3239f330f815] succeeded in 0.133968511s: 7 
[2015-01-29 16:41:38,521: INFO/MainProcess] Task proj.tasks.add[3dd3167b-d621-4371-9254-af420060da14] succeeded in 0.189544224002s: 7 
[2015-01-29 16:41:38,522: INFO/MainProcess] Task proj.tasks.add[6150984d-bce6-4cd7-871d-11b0c0909017] succeeded in 0.188820084s: 7 
[2015-01-29 16:41:38,692: INFO/MainProcess] Task proj.tasks.add[ae1f385c-db28-4d0c-b36c-b4c467c737e2] succeeded in 0.227334638999s: 7 
[2015-01-29 16:41:38,743: INFO/MainProcess] Task proj.tasks.add[3b5c1694-3a4c-499d-994d-02fdcb7c9e5c] succeeded in 0.221204429999s: 7 

Любая идея, почему я получаю эту ошибку? что здесь может быть не так?

Любая помощь приветствуется.

Спасибо, что не поставили вопрос на голосование.

ответ

1

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

rate_limit("proj.tasks.add","2/m") 

Thanks.

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