Возможно ли иметь серверную программу, которая ставит в очередь и управляет процессами, которые выполняются в командной строке?Очередь командной строки на стороне сервера
Проект, над которым я работаю, принимает изображение от пользователя, изменяет изображение, затем применяет его как текстуру к 3D-форме. Эта трехмерная сцена генерируется blender/Cinema 4d в командной строке, которая выводит ее как изображение. Именно этот процесс должен быть поставлен в очередь или каким-то образом управляться из программы на стороне сервера. Конечным результатом, отправленным обратно пользователю, является видео, содержащее анимированную трехмерную форму с изображением в качестве текстуры, применяемой к ней.
Эти рендеры могут занять некоторое время (они могут и не быть), но как я могу обеспечить их выполнение в нужное время и сделать это в порядке очереди?
Это желательно сделать в python.
Поскольку процесс представляет собой трехмерный рендеринг, мне нужно убедиться, что если система вялая, то есть возможность процессов очередей. Я предполагаю, что 50 параллельных рендеров могут привести к краху системы или иметь какой-то негативный эффект. Модули подпроцесса кажутся именно тем, что мне нужно. С немного более подробной информацией о том, как мне это нужно, вы все еще думаете, что подпроцесс является правильным выбором? – betamax
Абсолютно - вы можете решить, исходя из вашей системы, сколько вы думаете, что вы можете запускать одновременно, а затем просто очереди запросов, когда вы достигли этого предела, и обслуживайте их, как только предыдущие завершатся. (Вы также можете делать более экзотические вещи, например, запрашивать систему для использования процессора и памяти и решать, стоит ли начинать больше процессов, но это не зависит от модуля 'subprocess' .. :-)) –