У меня есть файл worker.php, как показано ниже
<?php
$data = $argv[1];
//then some time consuming $data processing
, и я запускаю его как очередь заданий бедного человека, используя gnu параллельный
while read LINE; do echo $LINE; done < very_big_file_10GB.txt | parallel -u php worker.php
, который работает путем разветвления 4php обрабатывает, когда я нахожусь на машине с 4 процессорами.
Но он все еще кажется мне довольно синхронным, потому что read LINE все еще читает по одной строке за раз.
Поскольку это файл 10 ГБ, яИнтересно, можно ли как-нибудь использовать параллельное чтение одного и того же файла параллельно, разделив его на n частей (где n = число моих процессоров), что ускорит мой импорт в n раз (в идеале).