1)
AMQP, и делегирование задач.
2) Запускать
дочерние процессы, разбивать массив на чанки и раздавать их сопрограммам.
Первый способ:
Преимущества:
* Неограничен ни чем. Запускаете
`воркеров X кол-во ядер`. Докупаете еще машину, ставите на ней ту же программу. И т.д.
* Даже если процесс упал, часть массива не потеряется, а передастся другому воркеру.
Недостатки:
* Нужно время на совершение транзакции (надуманный недостаток, так как транзакция проходим за пару миллисекунд).
Второй способ:
Преимущества:
* Моментальные транзакции (ну или как ответит родительский процесс).
Недостатки:
* Ограничен кол-во CPU.
* Не расшияем