2015-09-06 5 views
1

После того как я запустить асинхронную задачурезультат сельдерея бэкенд хранит закодированную строку в результирующем столбце

tasks.add.apply_async((10, 10)) 

я проверил таблицу базы данных результатов движки celery_taskmeta и заметил результат, содержащий что-то вроде gAJLBC4 =

Я не мог найти в документах, что подразумевает этот результат, и могу ли я сохранить фактический результат вызова функции (т. Е. Возвращаемое значение) в таблице как есть.

В этом случае, когда я выполняющий задание, которое добавляет два числа: 10 и 10, результата столбцов в celery_taskmeta должны иметь 20 согласно моему пониманию (что, вероятно, неправильно).

Как этого добиться?

Я предполагаю, что результат также сериализуется? Я использую redis broker и не понимаю, какую конфигурацию мне нужно установить, чтобы получить реальное возвращаемое значение.

ответ

0

лучший способ, чтобы получить результат не запрашивать базу данных напрямую и вместо того, чтобы использовать result api

result = tasks.add.apply_async((10, 10)) 
result.ready 
> True 
result.result 
> 20 
+0

Спасибо, но это не то, что блокирует поток? – sbose

+0

Что вы имеете в виду? – scytale

+0

Я имею в виду, это не асинхронный. – sbose