Всем доброго дня!
Изучаю celery, есть неясности. Прошу пожалуйста помочь кто в теме.
Дано:
- 100 миллионов тасков которые надо выполнить, они лежат в базе sqlite в виде разбросанных данных
- Скрипт воркер, который обрабатывает таски (он запускается посредством celery)
- Функция db_dumper, которая принимает на входе результат таска и пишет в нужном для меня виде результат в sqlite
- Celery 3.1.24
Задачи:
- Добавить ещё 1 поток который параллельно занимался бы сбором результатов всех успешных тасков, и складывал результаты в sqlite посредством моей функции db_dumper
- Как-то нужно удалять успешные таски после п.1, настройки celery сейчас такие:на rpc почему-то не пашет result.forget() для таска
BROKER_TRANSPORT='amqp', CELERY_RESULT_BACKEND='rpc://'
Как это можно сделать?
Что пробовал:
- Ставил CELERY_RESULT_BACKEND sqlite базу, мне не понравилось что туда пишется информация в своём формате (id таска, статус, результат в бинарном формате), мне это не подходит
- Пробовал сделать как в пункте выше, но затем туда подключаться и оттуда выгребать информацию о тасках, получается много лишних движений, хочется это лишнее звено убрать и напрямую из celery брать успешные таски и их результаты писать в базу как мне надо