Eu tenho um servidor amador no qual desejo que os usuários façam upload de um arquivo e, em seguida, recebam a superação de algum processamento (do lado do servidor) sobre o arquivo fornecido. Eu estou fazendo o processamento de forma síncrona para que, para cada solicitação do usuário, o servidor crie um novo processo. No entanto, eu queria fazê-lo de forma assíncrona, para que o servidor não gerasse 1 milhão de processos se fosse acessado por 1 milhão de usuários. (nunca vai acontecer, eu só quero aprender sobre a escalabilidade do servidor) Por isso, quero dizer o seguinte: Depois que o servidor recebe o arquivo a ser processado, ele adiciona um trabalho (algo como "process file_uuid.xyz > output_uuid.zyx") a algum tipo de fila de processo. Para que este processo só seja executado quando todos os anteriores estiverem concluídos.
Tenho quase certeza que o Linux tem alguma maneira de fazer isso, eu apenas não consigo descobrir como procurá-lo.
Tags process scheduling