Задача Celery для обработки данных из базы данных Postgres и django - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь использовать сельдерей и ритм сельдерея для запуска запланированного задания по обработке данных из базы данных, но когда я пытаюсь запустить задание, я получаю эту ошибку "django .db.utils.OperationalError: FATAL: роли "танака" не существует ". Код для запланированной задачи показан ниже

settings.py

CELERY_BEAT_SCHEDULE = {
    'task-number-one': {
        'task': 'loans.tasks.update_loan_book',
        'schedule': 60,
    },
}

tasks.py

@shared_task
def update_loan_book():
    tenants = Tenant.objects.all()
    for tenant in tenants:
        #logic to update tenant object

Код работает, когда я запускаю задачу, используя " celery -A proj worker -l info -B "команда, но не работает, когда я демонизирую сельдерей и ритм сельдерея. Файлы конфигурации для сельдерея и сельдерея показаны ниже. Я использую supervisord.

[program:projworker]
command=/home/tanaka/microfinance/bin/celery -A cloud_based_microfinance worker -l info
directory=/home/tanaka/Repositories/microfinance_project
user=tanaka
numprocs=1
stdout_logfile=/var/log/celery/proj_worker.log
stderr_logfile=/var/log/celery/proj_worker.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=truepriority=998

[program:projbeat]
command=/home/tanaka/microfinance/bin/celery -A cloud_based_microfinance beat -l info
directory=/home/tanaka/Repositories/microfinance_project
user=tanaka
numprocs=1
stdout_logfile=/var/log/celery/proj_beat.log
stderr_logfile=/var/log/celery/proj_beat.log
autostart=true
autorestart=true
startsecs=10
priority=999

Когда я пытаюсь запустить задачу в качестве демона, я получаю «django .db.utils.OperationalError: FATAL: роль« tanaka »не существует» в proj_worker .log файл.

...