Мой код получает уведомление о событиях, и я использовал для обработки событий, как только я их получу. Раньше он был однопоточным, но уведомление о событиях было довольно быстрым для их обработки. Я изменил свой код, чтобы использовать многопроцессорность с помощью пула. Вот что я сделал- многопроцессор. Использование всех моих процессов?
- создал
Pool = multiprocessing.pool(processes=4)
(я могу обрабатывать максимум 11 ядер) - добавлять события в бассейн для асинхронного -
pool.apply_async(go, ["event-1"])
, что все, что я сделал. Простым способом я добавляю события в пул, и пул будет обработан 4 процессами. Теперь мой вопрос.
- Как я могу проверить, что мои события обрабатываются, используя все 4 процесса? Я начинаю свой планировщик каждый воскресенья, понедельник в порядке, во вторник я все еще вижу, что события в понедельник обрабатываются, в среду число растет, многие события вторника обрабатываются в среду и т. Д.
Я в основном Java парень, мне трудно понять, как python внутренне обрабатывает мои события. Я мог бы просто увеличить процессы, но я не уверен, что это помогает?
Мое основное требование
- зарегистрироваться себя за событиями, и хотел бы обрабатывать каждое событие
- Я хотел бы обрабатывать события в отдельном процессе, так основной процесс/нить еще продолжать прослушивание новых событий
- Я не беспокоюсь о результате обработанного события. (но
pool.apply_async(func1,["event1"])
возвращает значения)
Пожалуйста, помогите мне заполнить некоторые мысли?