芹菜在主管中持续 2 分钟后重新启动

问题描述

我正在使用 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...