У нас есть система очередей для асинхронных работ, она строится по Пиры
с Redis
Анкет Он работает нормально, если ваше приложение невелико, Pyres Worker разгибает новый процесс перед выполнением работы, а затем завершит рабочий процесс, работник просто ждет новой работы.
Благодаря приложению Out все более и более сложным, каждый новый рабочий процесс тратит много времени на загрузку, пакет должен быть загружен, зависимости пакета должны быть загружены, например, Рабочий процесс тратит только 1 на выполнение кода задания, но для загрузки необходимо 10 с.
Мы думаем, если Рабочий процесс
может загрузить все, что ему нужно, новый процесс не нуждается в загрузке, потому что новый процесс раздвоен Рабочий процесс
, Python знает, какой модуль загружен, если вы загружаете загруженный модуль, он просто возвращается, очень быстро. Может Рабочий
Класс может быть смягчен и реализовать перед_Форк
Метод загрузки чего -либо, загруженные модули доступны для нового раздвоенного процесса.
Другими методами является то, что, если Рабочий процесс
Может быть, существует в течение долгого времени, в течение некоторого времени он не нуждается в загрузочных модулях. Есть Pyres_manager
, это создает управляющий делами
, менеджер
Создает немного миньон
, менеджер
положить миньон
в бассейн
Анкет Если вы хотите использовать pyres_manager
, не ждите Resweb
работает нормально, он не может отображать Рабочий
Потому что это не знает миньон
Анкет
Оригинал: “https://dev.to/dawncold/speed-up-your-pyres-worker”