【发布时间】:2020-06-09 12:45:28
【问题描述】:
我正在尝试使用 celery 和 celery beat 来运行计划任务来处理数据库中的数据,但是当我尝试运行该任务时出现此错误“django.db.utils.OperationalError: FATAL: role”田中“不存在”。计划任务的代码如下所示
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”命令运行任务时,该代码有效,但当我对 celery 和 celery beat 进行守护时,该代码无效。 celery 和 celery beat 的配置文件如下所示。我正在使用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
当我尝试将任务作为守护进程运行时,我在 proj_worker.log 文件中收到“django.db.utils.OperationalError: FATAL: role "tanaka" does not exist”。
【问题讨论】:
标签: django celery supervisord