История изменений
Исправление crarkie, (текущая версия) :
А почему бы тебе не делать всё в рамках одного процесса? Можно просто запустить много инстансов API и всё.
Потому что оно сейчас так и сделано. Но потоками. И работает это медленно. Можно и сделать asyncio задачами. Но тк задач много и они не останавливаются, а работают все время, то боюсь, будет снова затык. Поэтому, хочу разбить задачи на n процессов по x в каждом. Т.к сервер на 32 ядра, то зачем ему простаивать? Ну и каждая задача может быть как остановлена/удалена, так и запущенна новая. Сами задачи регистрируются в DB. Сама запущенная задача смотрит свой статус в redis. Если через django в redis меняется статус, то задача завершается/перезапускается, etc. Основная проблема, повторюсь же, что задача крутится все время. Если бы она делала действия и завершалась, то без проблем бы решил уже все через Pool. Но сейчас делать pool на 150 процессов, а потом увеличивать по мере увеличения количества задач не кажется хорошей идеей от слова совсем.
Исправление crarkie, :
А почему бы тебе не делать всё в рамках одного процесса? Можно просто запустить много инстансов API и всё.
Потому что оно сейчас так и сделано. Но потоками. И работает это медленно. Можно и сделать asyncio задачами. Но тк задач много и они не останавливаются, а работают все время, то боюсь, будет снова затык. Поэтому, хочу разбить задачи на n процессов по x в каждом. Т.к сервер на 32 ядра, то зачем ему простаивать? Ну и каждая задача может быть как остановлена/удалена, так и запущенна новая. Сами задачи регистрируются в DB. Сама запущенная задача смотрит свой статус в redis. Если через django в redis меняется статус, то задача завершается/перезапускается, etc. Основная проблема, повторюсь же, что задача крутится все время. Если бы она делала действия и завершалась, до без проблем бы решил уже все через Pool.
Исходная версия crarkie, :
А почему бы тебе не делать всё в рамках одного процесса? Можно просто запустить много инстансов API и всё. Потому что оно сейчас так и сделано. Но потоками. И работает это медленно. Можно и сделать asyncio задачами. Но тк задач много и они не останавливаются, а работают все время, то боюсь, будет снова затык. Поэтому, хочу разбить задачи на n процессов по x в каждом. Т.к сервер на 32 ядра, то зачем ему простаивать? Ну и каждая задача может быть как остановлена/удалена, так и запущенна новая. Сами задачи регистрируются в DB. Сама запущенная задача смотрит свой статус в redis. Если через django в redis меняется статус, то задача завершается/перезапускается, etc. Основная проблема, повторюсь же, что задача крутится все время. Если бы она делала действия и завершалась, до без проблем бы решил уже все через Pool.