Я работаю над веб-сервером, который часто захватывает данные рынка в реальном времени из Интернета и помещает данные в базу данных MySQL.Python несколько процессов вместо потоков?
В настоящее время у меня есть мой основной поток push задач в объект Queue. Затем у меня около 20 потоков, которые читаются из этой очереди, и если задача доступна, они ее выполняют.
К сожалению, я сталкиваюсь с проблемами производительности, и, проведя много исследований, я не могу решить.
Как я вижу, у меня есть 3 варианта: Должен ли я использовать распределенный подход к задачам с чем-то вроде Celery? Должен ли я переключиться на JPython или IronPython, чтобы избежать проблем с GIL? Или нужно просто создавать разные процессы вместо потоков, используя обработку? Если я поеду за последним, сколько процессов - хорошая сумма? Что представляет собой хороший многопроцессорный производитель/потребительский дизайн?
Спасибо!
Вы окончательно определили, где ваши узкие места? –