месседжей идущий по порядку
есть исходящий поток
процессинг 1 месседжа довольно таки тяжелый, поэтому имеет смысл раскидать его по разным потокам, но при этом сохранить порядок следования.
колечество месседжей вначале неизвестно, но явно можно узнать, какой последний
собственно вопрос такой, как бы это лучше реализовать на кор джаве, кроме достаточно очевидного PriorityBlockingQueue?
P.S. все входящие месседжи в память не помещаются
Привет, вычитывай батчами(например по 10 штук) запускай 10 потоков обработки, сохраняй результаты в массив(с индексом сообщения в батче), отправляй пачку обработанных результатов. Порядок сохранён
Тут либо строя очередность, либо параллельность. Если обрабатывать параллельно, то нет гарантий очередности завершения задач. Какого рода задачи обрабатываются, можно ли дробить на подзадачи?
в принципе так и сделал, с небольшими улучшениями, просто оценивал, есть ли варианты получше
Обсуждают сегодня