Почему я не вижу никаких ключей результатов задачи сельдерея в Redis (хотя задачи достигают успеха)?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему я не вижу никаких ключей результатов задачи сельдерея в Redis (хотя задачи достигают успеха)?

Сообщение Anonymous »

Я пытаюсь запустить базовое приложение для сельдерея с Redis в качестве брокера и бэкэнда результатов. Все работает правильно-выполняются, выполняются, выполняются и возвращают правильные результаты, но я не вижу никаких ключей, связанных с задачей в Redis. Я использую Redis Commander для осмотра ключей, а также пытался проверить ключи от CLI внутри контейнера.

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

from celery import Celery
from time import sleep

app = Celery("tasks", broker="redis://localhost:6379", backend="redis://localhost:6379")
app.conf.result_expires = 3600  # 1 hour result retention

@app.task
def process(x, y):
for _ in range(5):
sleep(10)
print("Processing")
return x**2 + y**2
< /code>
docker-compose.yml
services:
redis:
image: redis
ports:
- "6379:6379"
redis-commander:
image: rediscommander/redis-commander
ports:
- "8081:8081"
environment:
- REDIS_HOSTS=local:redis:6379
< /code>
Как я запускаю работник сельдерея < /p>
celery -A tasks worker --loglevel=info -E

Результат работника
-------------- [email protected] v5.5.3 (immunity)
--- ***** -----
-- ******* ---- macOS-14.6.1-arm64-arm-64bit-Mach-O 2025-07-23
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: tasks:0x10305c830
- ** ---------- .> transport: redis://localhost:6379//
- ** ---------- .> results: redis://localhost:6379/
- *** --- * --- .> concurrency: 8 (prefork)
-- ******* ---- .> task events: ON
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
< /code>
Запуск задачи в Shell < /p>

process.delay(12, 12)
< /code>
Журналы сельдерея < /p>
Task tasks.process[89899d0a-cb18-4ed7-8d9c-e8a442e9eb21] received
Processing
Processing
Processing
Processing
Processing
Task tasks.process[89899d0a-cb18-4ed7-8d9c-e8a442e9eb21] succeeded in 50.07s: 288
< /code>
может извлечь задачи из оболочки, подобной этой < /p>
result = process.AsyncResult("89899d0a-cb18-4ed7-8d9c-e8a442e9eb21")
result.get() # returns 288
< /code>
А вот как я проверяю свои ключи в контейнере Redis < /p>
docker exec -it redis-cli
127.0.0.1:6379> SELECT 0
127.0.0.1:6379> KEYS *
(empty list)
< /code>
Я проверил базы данных от 0 до 15, результат такой же. < /p>
работает ли Redis правильно? Если так, почему я не могу увидеть ключи сельдерея.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ks-succeed
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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