Você não deve ter incrond
iniciando mais processos de processamento do que fazer sentido em paralelo, por exemplo, conforme determinado pelo seu número de CPUs ou sua memória. Este é o número N referenciado no texto a seguir.
Os processos de processamento só devem ser iniciados por incrond
e continuar processando os arquivos no diretório "in" até que nada seja deixado. Se vários desses processos forem executados, haverá alguma coordenação necessária para que dois processos não tentem processar a mesma tarefa.
Se os scripts python só puderem ser executados com um arquivo como argumento, peça que incrond
inicie um script wrapper que continue gerando o script python original, desde que haja novos arquivos para processar, caso contrário ele existe. Este script de wrapper é iniciado por icrond
se houver menos de N em execução ao mesmo tempo. Os scripts do wrapper continuam sendo processados desde que a taxa de entrada de arquivos seja maior, mas eles não perderão nada nem retardarão desnecessariamente o sistema por meio de muitos scripts paralelos em execução.
Quando a taxa de entrada ficar abaixo da taxa de processamento, o número de arquivos que ainda precisam de processamento será reduzido para, finalmente, chegar a zero e todos os scripts de wrapper serão encerrados.
Se não houver uma maneira fácil de distinguir os arquivos que acabaram de chegar dos já processados, peça ao incrond
que escreva algum arquivo de tarefa em um diretório, a partir do qual os arquivos de tarefas serão processados.