Conversation
HadronCollider
left a comment
There was a problem hiding this comment.
- возьмите линтер с конфигом и поправьте свой код
- добавьте в логи контекст проверок (тренировка, задача/этап и пр.) - чтобы не добавлять каждый раз в
training_id={training_id}и пр. отладочные данные
- если открываете порты каких-то контейнеров
- не используйте стандартный порт (на сервере / у меня / где-то ещё) они уже могут быть заняты - как минимум, добавьте возможность их изменить (через .env)
- добавляйте "127.0.0.1", чтобы доступ был только с докера / локальной машины (на некоторых серверах могут быть открыты эти порты -> к вам могут попасть)
| ) | ||
| TrainingsDBManager().set_score(training_id, 0) | ||
|
|
||
| raise |
There was a problem hiding this comment.
А для чего мы ловим исключение, обнуляем тренировку и бросаем исключение снова, или это чтобы следующие этапы уже не выполнялись (тогда лучше это в логах отобразить)?
| config_path = os.environ.get("APP_CONF") | ||
| if not config_path: | ||
| raise RuntimeError("APP_CONF environment variable is not set") | ||
| Config.init_config(config_path) |
There was a problem hiding this comment.
Заведите отдельный celeryconfig для задач - чтобы не мешаться с env и переменными для других контейнеров
| ), | ||
| ] | ||
|
|
||
| celery_app = Celery( |
There was a problem hiding this comment.
опять же про конфиг (чтобы не прописывать тут всё вручную)
There was a problem hiding this comment.
А в чем смысл этих изменений?
В том числе с submit_scores_for_passback (это вроде отправка оценок к мудл)
There was a problem hiding this comment.
перенесите конфиги из *.ini в *.py
т.е. разделы и переменные из *.ini
[cacher]
url=http://cacher:7777/
[mongodb]
connect_url=mongodb://mongo:27017/databaseпревратить в переменные в *.py
# cacher
CACHER_URL = 'http://cacher:7777/'
# mongodb section
MONGODB_CONNECT_URL = "mongodb://mongo:27017/database"Чтобы такой конфиг использовался в коде как старый (чтобы не менять логику)
https://github.com/OSLL/web_speech_trainer/blob/dev/app/config.py нужно заменить на приложенный
Так можно будет формировать конфиг, беря нужные переменные из .env
|
|
||
| celery_worker_audio_rec: | ||
| image: wst-image:v0.2 | ||
| command: celery -A app.celery_app worker --loglevel=info --concurrency=1 -Q audio_recognition |
There was a problem hiding this comment.
вынесите concurrency в обсуждаемый выше celeryconfig (причем для каждой очереди/обработчика свой)
| environment: | ||
| - APP_CONF=${APP_CONF} | ||
| volumes: | ||
| - nltk_data:/root/nltk_data |
There was a problem hiding this comment.
а зачем nltk в контейнере по обработке результатов тренировок?
| networks: | ||
| wst_network: | ||
| external: true | ||
| name: web_speech_trainer_network No newline at end of file |
There was a problem hiding this comment.
- все названия от docker compose (сети, тома, контейнеры и пр.) зависят от названия проекта (по умолчанию - название родительской папки) - запусти мы её в другой папке (или установив project-name), все сломается, т.к. имена захардкожены
- если volumes.nltk_data используется только тут - вроде бы external ему не нужно
-
если не ошибаюсь, при запуске
docker compose -f docker-compose.workers.yml -f docker-compose.yml ...- все контейнеры будут в одной сети, т.е. нет необходимости в подобном (ещё и хардкоде) -
кроме того, кажется, что сеть (в общем случае) вообще не нужна - мы даем url для подключения к rabbit/redis и вроде как этого достаточно
There was a problem hiding this comment.
см комментарии к docker-compose.workers.yml
| ports: | ||
| - "5555:5555" | ||
| environment: | ||
| - APP_CONF=${APP_CONF} |
There was a problem hiding this comment.
Для чего flower app conf?
No description provided.