Сохранение данных celery в postgresql
Я пытаюсь развернуть проект django, который собирает данные каждые несколько минут и обновляет кэш redis и данные postgresql. Я использовал задачи celery и django_celery_beat для этого, и это отлично работало в разработке, но когда я хочу автоматизировать celery worker и beat в фоновом режиме и сохранить данные в postgres, я получаю эту ошибку в логах:
[2022-01-07 18:15:17,012: WARNING/MainProcess] django.db.utils
[2022-01-07 18:15:17,012: WARNING/MainProcess] .
[2022-01-07 18:15:17,012: WARNING/MainProcess] OperationalError
[2022-01-07 18:15:17,012: WARNING/MainProcess] :
[2022-01-07 18:15:17,012: WARNING/MainProcess] connection to server at "127.0.0.1", port 5432 failed: fe_sendauth: no password supplied
celery.py:
import os
from celery import Celery
# Set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'personal_website.settings')
app = Celery('personal_website')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')
tasks.py:
from celery import shared_task
from .currency_scraper import get_prices
from .models import Currency
from django.core.cache import cache
@shared_task
def update_prices():
"""
Updates currency model prices using get_prices function.
"""
prices = get_prices()
if prices:
for name, price in prices.items():
try:
old_price = Currency.objects.get(name=name)
old_price.price = price
old_price.save()
cache.set(name, price, None)
except Currency.DoesNotExist:
Currency.objects.create(name=name, price=price)
cache.set(name, price, None)
Я понимаю ошибку, но не знаю, как аутентифицироваться в postgresql с помощью celery. Я использую supervisor для запуска celery и beat в ubuntu.