- Не делай scandir, а читай имена файлов для обработки из STDIN После этого завор, ACCA (ok), 20:32 , 10-Янв-24 (1)
Не делай scandir, а читай имена файлов для обработки из STDIN. После этого заворачиваешь свой PHP во что-нибудь вроде
#!/bin/bashORIGDIR=/opt CPUS=$(expr $(nproc) - 2) TMPFILE=$(mktemp) trap "rm $TMPFILE $TMPFILE.*" EXIT find $ORIGDIR -type f > $TMPFILE split -n l/$CPUS $TMPFILE $TMPFILE. for LST in $TMPFILE.* do wc -l < $LST & done wait wait
Для примера обработки здесь использован wc. Количество параллельных процессов = число ядер-2 (пару ядер оставим для другой работы).
|