Sto cercando un metodo per risolvere il seguente problema:
Supponiamo che ci sia una directory di spool con molti file che devono essere elaborati. Esiste un processo A che scrive costantemente nuovi file in questa cartella e un processo B che elabora quei file. Quindi un classico modello produttore / consumatore.
Sfortunatamente, nelle ore di punta, il processo A scrive nuovi file più velocemente di quanto Process B sia in grado di elaborarli. Quindi vorrei iniziare più istanze del processo B per accelerarlo. Tuttavia, queste istanze del processo B funzionerebbero tutte sulla stessa directory di spool e potrebbero intromettersi.
Ecco uno pseudo codice del processo B:
while (running)
take the first BATCH_SIZE files from spool
process files
sleep
end
C'è un modo per avviare più istanze del processo B senza intralciarlo? Ho già pensato di partizionare la quantità di file, ma dovrei conoscere il numero di istanze dall'inizio. Diciamo che ho già 1 istanza in esecuzione e vedo che non è abbastanza ... Quindi voglio solo avviare temporaneamente un'altra istanza senza terminare il primo o in qualche modo in anticipo.
Spero di essermi espresso comprensibile e sono molto grato per tutte le idee / i commenti utili!