• Как настроить логирование Django + Celery с помощью RotatingFileHandler?

    @Sazoks Автор вопроса
    Я нашел ответ на свой вопрос!

    В общем, все дело в том, что когда мы прописываем строчку
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'company.settings')
    в celery.py, процесс celery-воркера получает модуль logging (который является singleton'ом) со всеми настройками django и LOGGING из settings.py. Поэтому процесс django и celery-воркера имеют общие настройки logging (celery только еще своего добавляет). Из-за этого они захватывают файлы логов друга друга. Так вот собственно решение. Все дело в том, что windows запрещает переименовывать файлы (при ротации логов), если файл занят другим процессом, а линукс - нет :) Так что все настройки логирования celery можно спокойно прописывать в settings.py, но если запускать это дело под linux'ом.

    Чем это может быть опасно

    В моем случае у меня для каждого процесса свои файлы логов, что логично и правильно. Однако один процесс может удалить/переименовать файл, который использует в это время другой процесс. Другой процесс об этом не узнает и могут быть большие проблемы. Но если процессы работают только со своими файлами, не трогая другие, то проблем не будет.
    Ответ написан
    Комментировать
  • Как создать веб сервер для удалённого доступа?

    @Sazoks
    Для python-проектов есть сервис pythonanywhere, можешь там свой код выложить.
    Еще есть такая штука для автодеплоя, как heroku. Она бесплатная, легко коннектится с github'ом, например.
    Также можешь поставить себе консольную тулзу ngrok. Запускаешь свой проект на определенном порте локально, запускаешь ngrok и все, готово.
    Если не хочешь париться, юзай ngrok. Разобраться - 5 минут делов. Любые проекты запускаешь локально, пробрасываешь порт и вуаля, готово. Единственный минус в маленькой пропускной способности узла, через который будет идти весь трафик.
    Ответ написан
    Комментировать
  • Django ORM | Ошибка в применении SingletonModel?

    @Sazoks Автор вопроса
    Решение оказалось очень простым и очевидным.
    Ошибка заключалась в том, что во время создания миграций код загрузки объекта выполнялся раньше, чем создавалась таблица в БД.
    Нужно просто создать таблицу в БД перед миграциями, а чтобы не возиться с этим, можно просто закомментировать класс регистрации модели, запустить миграции (тогда таблица создаться полностью настроенной) и затем раскомментировать класс регистрации.
    Ответ написан
    Комментировать
  • Как работает GitLab Runner?

    @Sazoks Автор вопроса
    В общем. Я разобрался со всем и все заработало.
    1) Да, как я и говорил, раннер выполняет команды на установленной машине. Но! В моес случае то и требовалось, и чтобы это получить нужно было указать исполнитель shell. Т.е. если указать docker, то, судя по логам, будет запускается докер контейнер и команды будут исполняться в нем.
    2) Я заметил очень странно поведение, что иногда запускался мой раннер с моим исполнителем, а иногда вообще какой-то другой с исполнителем docker+machine. Помогло отключение дефолтных раннеров (их там 15 штук).
    3) У меня сервер запущен на убунту под обычным пользователем. И выполнение некоторых команд требовало использование sudo, а при использовании sudo запрашивается пароль. Можно отключить запрос пароля для пользователя gitlab-runner, отредактировав sudo через sudo visudo. В самый конец это команды нужно прописать %username% ALL=(ALL:ALL) NOPASSWD: ALL, где %username%, в моем случае, - это gitlab-runner.

    Все эти действия привели меня к тому, что теперь команды, прописанные в .gitlab-ci.yml, выполняются на моем ubuntu-сервере, где развернут докер (дальше буду разбираться с ним) и будет поднят мой сервис.

    Надеюсь, кому-то пригодится.
    Ответ написан
    Комментировать
  • Почему не срабатывает сигнал в Qt?

    @Sazoks Автор вопроса
    Я понял, в чем проблема. Проблема в том, что все приходящие данные уходят в сокет, который находится в главном потоке, а до сокета в другом потоке просто ничего не доходят.
    Скажите, можно ли как-то указать сокетам, чтобы они либо только читали, либо только отправляли данны?
    Ответ написан
  • Проблемы с Проблема с зеркалом архива Debian при усатановке kali linux не могу найти прокси сервер который требуется ввести что делать?

    @Sazoks
    После установки можно зеркала вручную настроить и все норм будет, погугли
    Ответ написан
    Комментировать
  • Почему Tor Browser не работает на Linux Mint?

    @Sazoks
    Если из под рута, зайди в папку с тором, там найди файл start-tor-browser и, не помню где точно, нужно 0 на 1 поменять) Погугли про это
    Ответ написан
    Комментировать