问题描述
我正在使用 Celery 从 django 执行各种任务。 celery 使用 Supervisor 进行管理。 Rabbitmq 用于 celery 的代理。 Celery 和 django 在一个 Docker 容器 中,代理在另一个中。整个应用程序在 RHEL 7.9 中运行 Docker-compose。
问题
- 芹菜在主管中每 2 分钟不断重启。
- 没有捕获相同的日志事件。
代码
主管配置
[program:django-celery]
command=/usr/local/bin/celery -A CELERY_APP worker --loglevel=info --logfile=/var/log/supervisor/celery.log
directory=/app
user=root
numprocs=1
stdout_logfile=/var/log/supervisor/celery_out.log
stderr_logfile=/var/log/supervisor/celery_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=998
environment=DJANGO_SETTINGS_MODULE='CELERY_APP.settings',CONfig_TYPE='PROD',LD_LIBRARY_PATH='/usr/lib/oracle/18.3/client64/lib/'
[program:django-celerybeat]
command=/usr/local/bin/celery -A CELERY_APP beat --loglevel=info --logfile=/var/log/supervisor/celery_beat.log
directory=/app
user=root
numprocs=1
stdout_logfile=/var/log/beat_out.log
stderr_logfile=/var/log/supervisor/beat_err.log
autostart=true
autorestart=true
startsecs=10
priority=999
environment=DJANGO_SETTINGS_MODULE='CELERY_APP.settings',LD_LIBRARY_PATH='/usr/lib/oracle/18.3/client64/lib/'
Dockerfile
FROM python:3.8
ENV PYTHONUNBUFFERED=1
RUN mkdir /app
workdir /app
EXPOSE 8000 5672 15672
copY requirements.txt /app/
RUN pip install -r requirements.txt
RUN apt-get update
RUN apt-get install -y wget net-tools curl alien unzip telnet supervisor zlib1g
RUN apt-get update && apt-get install -y libaio1
RUN wget http://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm
RUN alien -i oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm
ENV LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
copY . /app/
RUN mkdir -p /app/TEMP/PIXL
RUN mkdir -p /app/TEMP/RUNNER
RUN mkdir -p /app/TEMP/DUMP
copY docker/django/start /start
RUN chmod +x /start
copY docker/django/supervisor_app.conf /etc/supervisor/conf.d/supervisor_app.conf
copY docker/django/supervisord.conf /etc/supervisor/supervisord.conf
芹菜.py
import os
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault('DJANGO_SETTINGS_MODULE','CELERY_APP.settings')
app = Celery("CELERY_APP")
app.config_from_object('django.conf:settings',namespace='CELERY')
app.conf.beat_schedule = {
'zip_and_send': {
'task': 'asyncManagment.tasks.create_zip_file_for_push','schedule': crontab(minute='*/30'),},'parse_response': {
'task': 'asyncManagment.tasks.response_manager','schedule': crontab(minute=0,hour='*/3'),#crontab(minute='*',hour='8-19')
},'zip_and_resend': {
'task': 'asyncManagment.tasks.create_zip_file_for_repush','schedule': crontab(minute=6,hour='14'),'value_check':{
'task':'asyncManagment.views.db_check',hour='12'),}
app.autodiscover_tasks()
有人可以告诉我可能的原因和解决方案吗?如果我遗漏了任何内容,过分强调或过分强调某个特定点,请在评论中告诉我。非常感谢您抽出宝贵时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)