LINUX.ORG.RU

История изменений

Исправление 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.