Celery AsyncResult всегда ОЖИДАЕТСЯPython

Программы на Python
Ответить
Anonymous
 Celery AsyncResult всегда ОЖИДАЕТСЯ

Сообщение Anonymous »

Я работаю над демо-версией, код прост:

Код: Выделить всё

# The Config
class Config:
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
CELERY_ACCEPT_CONTENT = ['application/json']

# The Task
@celery_app.task()
def add(x, y):
return x + y
Чтобы запустить рабочий:

Код: Выделить всё

$ celery -A appl.task.celery_app worker --loglevel=info -broker=redis://localhost:6379/0

-------------- celery@ALBERTATMP v3.1.13 (Cipater)
---- **** -----
--- * ***  * -- Linux-3.2.0-4-amd64-x86_64-with-debian-7.6
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         celery_test:0x293ffd0
- ** ---------- .> transport:   redis://localhost:6379/0
- ** ---------- .> results:     disabled
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery           exchange=celery(direct) key=celery
Чтобы запланировать задачу:

Код: Выделить всё

>>> from appl.task import add
>>> r = add.delay(1, 2)
>>> r.id
'c41d4e22-ccea-408f-b48f-52e3ddd6bd66'
>>> r.task_id
'c41d4e22-ccea-408f-b48f-52e3ddd6bd66'
>>> r.status
'PENDING'
>>> r.backend

Тогда рабочий выполнит задачу:

Код: Выделить всё

[2014-07-29 17:54:37,356: INFO/MainProcess] Received task: appl.task.add[beeef023-c582-42e1-baf7-9e19d9de32a0]
[2014-07-29 17:54:37,358: INFO/MainProcess] Task appl.task.add[beeef023-c582-42e1-baf7-9e19d9de32a0] succeeded in 0.00108124599865s: 3
Но результат остается ОЖИДАЕМЫМ:

Код: Выделить всё

>>> res = add.AsyncResult(r.id)
>>> res.status
'PENDING'
Я попробовал официальный FAQ. Но это не помогло.

Код: Выделить всё

>>> celery_app.conf['CELERY_IGNORE_RESULT']
False
Что я сделал не так? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/250 ... ys-pending
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»