Как настроить DB для Django, Celery и SQS

Я пытаюсь выгрузить задачу montecarlo в Celery и сохранить результаты в PostgreSQL AWS DB (RDS)

из файла views.py:

newResults = MonteCarloResultTrue.objects.create(htmlCompanyArray = "[]")
viewRun = runMonteCarloAsync.delay(checkedCompaniesIDs,newResults.id)

Объект создан, но в tasks.py объект DB не редактируется:

@app.task(bind=True)
def runMonteCarloAsync(self,checkedCompaniesIDs, calc_id):
    newResults = MonteCarloResultTrue.objects.get(id=calc_id)
    newResults.htmlCompanyArray = "[asdf]"
    newResults.save()

Как я могу обновить БД из задачи Celery? Нужно ли мне явно указать Celery, где искать БД? (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. Я изменил его на:

celery_worker: celery -A rvm worker --loglevel=INFO

и теперь я могу сохранять в задаче (Используя Celery 5.x)

Вернуться на верх