Как сохранить данные Celery в Django DB
Я запускаю приложение Django на AWS, с БД PostgreSQL, использующей SQS. Я пытаюсь выгрузить моделирование montecarlo на Celery, но не могу сохранить результаты в БД.
Мой вид выглядит следующим образом:
runMonteCarloAsync.delay(checkedCompaniesIDs)
Задача выглядит следующим образом:
@app.task(bind=True)
def runMonteCarloAsync(self,checkedCompaniesIDs):
# Do some montecarlo stuff
data = []
newResults = MonteCarloResultTrue(data=data)
newResults.save()
Вот мой settings.py:
CELERY_accept_content = ['application/json']
CELERY_task_serializer = 'json'
CELERY_TASK_DEFAULT_QUEUE = 'django-queue-dev'
CELERY_BROKER_URL = 'sqs://{0}:{1}@'.format(
urllib.parse.quote(AWS_ACCESS_KEY_ID, safe=''),
urllib.parse.quote(AWS_SECRET_ACCESS_KEY, safe='')
)
CELERY_BROKER_TRANSPORT_OPTIONS = {
"region": "us-east-1",
'polling_interval': 20
}
CELERY_RESULT_BACKEND = 'django-db'
CELERY_CACHE_BACKEND = 'django-cache'
ProcFile:
web: python manage.py runserver
celery_worker: celery worker -A rvm.settings.celery.app --concurrency=1 --loglevel=INFO -n worker.%%h
celery_beat: celery
Я вижу, что сообщения попадают в SQS:
Нет новых записей в БД. Мне кажется, что я что-то упускаю, но я не могу понять это.