Я построил систему очередей с использованием Celery, которая принимает веб-запросы и выполняет некоторые задачи для обработки этих запросов. Я использую Redis в качестве бэкэнда для Celery, но думаю, что этот вопрос применим ко всем бэкэндам.
Celery возвращает имя задачи как celery-task-meta-<task ID>
и сохраняет его в бэкэнде. Это бессмысленно для меня. Как я могу изменить название результата, который сельдерей посылает в Redis? Я просмотрел всю документацию Celery , чтобы попытаться выяснить, как это сделать.
Монитор CLI Redis показывает, что Celery использует метод SETEX, и отправляет следующий ввод:
"SETEX" "celery-task-meta-dd32ded3-00aa-4884-8b21-42f8332e7fac"
"86400" "{\" status \ ": \" SUCCESS \ ", \" result \ ": {\" mode \ ": \" staging \ ",
\ "123 \": 50}, \ "traceback \": null, \ "children \": [], \ "task_id \":
\ "dd32ded3-00aa-4884-8b21-42f8332e7fac \", \ "date_done \":
\ "2019-05-09T16: 44: 12.826951 \", \ "parent_id \":
\ "2e99d958-cd5a-4700-a7c2-22c90f387f28 \"} "
"result": {...}
, который вы видите в приведенной выше команде SETEX, - это то, что возвращает задание. Я хотел бы, чтобы SETEX был более похож на:
"SETEX" "mode-staging-123-50-SUCCESS" "{...}"
, чтобы при просмотре всех моих ключей в Redis имя ключа было для меня информативным.
Вот еще один пример представления ключей в моем кэше Redis, которые не имеют смысла:
![redis keys](https://i.stack.imgur.com/sOAo6.png)