OSError: [Errno 24] Слишком много открытых файлов Gunicorn

У меня есть приложение Django, запущенное на сервере, я использую gunicorn на сервере вот как выглядит мой файл службы gunicorn

myapp.service

[Unit]
Description=myapp daemon
Requires=myapp.socket
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/myappApi/
ExecStart=/myappApi/venv/bin/gunicorn \
          --access-logfile - \
          --workers 10 \
          --timeout 0 \
          --bind unix:/run/myapp.sock \
          myappProject.wsgi:application

[Install]
WantedBy=multi-user.target

и вот какую ошибку я получаю

File "/myappApi/views.py", line 293, in CustomHandler
Jan 23 10:48:30 myapp gunicorn[2957207]:     app = CustomApp()
Jan 23 10:48:30 myapp gunicorn[2957207]:   File "app.py", line 22, in __init__
Jan 23 10:48:30 myapp gunicorn[2957207]:     self.logger = start_logger(__file__)
Jan 23 10:48:30 myapp gunicorn[2957207]:   File "utils/loggerUtil.py", line 19, in start_logger
Jan 23 10:48:30 myapp gunicorn[2957207]: OSError: [Errno 24] Too many open files: 'conf/config.json'

вышеуказанная ошибка вызывается этим кодом

from logging.handlers import RotatingFileHandler
import os, logging, time, json

def start_logger(__file__):
    os.makedirs('logs', exist_ok=True)
    fileName = os.path.basename(__file__)
    logdatetime = time.strftime("%d-%m-%Y-%I-%M")
    logFilename = 'logs/' + fileName[:-3] + logdatetime + '.log'
    
    logger = logging.getLogger(__file__)
    ''' Setting the threshold of logger to DEBUG '''
    with open("conf/config.json") as f1:
        data = json.load(f1)
    # Rotating handler
    handler = RotatingFileHandler(
        logFilename, maxBytes=data['maxBytes'], backupCount=data['backupCount'])
    logger.addHandler(handler)
    return logger

Я проверил этот ответ он увеличивает ulimit файла, что нормально, но это временное решение. Я заметил, что использую with контекстный менеджер, поэтому вне этого блока файлы должны быть закрыты, почему они все еще открыты?

Вернуться на верх